Какова цель " pip install --user ..."?
С pip install --help
:
--user Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%Python on
Windows. (See the Python documentation for site.USER_BASE for full details.)
документация на сайте.USER_BASE-это ужасающая червоточина интересного * NIX предмета, который я не понимаю.
какова цель --user
на простом английском языке? зачем вводить пакет в ~/.local/
вопрос? Почему бы просто не поместить исполняемый файл где-нибудь в моем $PATH?
3 ответа:
pip по умолчанию устанавливает пакеты Python в системный каталог (например,
/usr/local/lib/python3.4
). Для этого требуется корневой доступ.
--user
делает pip установить пакеты в домашнюю директорию, которая не требует каких-либо особых привилегий.
--user--
устанавливает вsite.USER_SITE
. Дополнительная документация в здесьдля моего случая, это было
/Users/.../Library/Python/2.7/bin
. Поэтому я добавил Это к моему пути (in~/.bash_profile
file):export PATH=$PATH:/Users/.../Library/Python/2.7/bin
на MAC OS, причина использования
--user
флаг - это убедиться, что мы не повреждаем библиотеки, на которые опирается ОС. А консервативно подход для многих пользователей MAC OS заключается в том, чтобы избежать установки или обновления pip с помощью команды, которая требуетsudo
. Таким образом, это включает в себя установку на/usr/local/bin
...Ref: установка python для Neovim (https://github.com/zchee/deoplete-jedi/wiki/Setting-up-Python-for-Neovim)
Я не все понятно, почему установка в
/usr/local/bin
это риск для MAC, учитывая тот факт, что система полагается только на двоичные файлы python в/Library/Frameworks/
и/usr/bin
. Я подозреваю, что это потому, что, как отмечалось выше, установка в/usr/local/bin
требуетsudo
что открывает дверь к совершению дорогостоящей ошибки с системными библиотеками. Таким образом, установка в~/.local/bin
это верный способ избежать этого риска.Ref: использование python на Mac (https://docs.python.org/2/using/mac.html)
наконец, в той степени, в которой есть преимущество установки пакетов в
/usr/local/bin
, интересно, есть ли смысл менять владельца каталога сroot
доuser
? это позволит избежать необходимости использоватьsudo
при сохранении защиты от внесения системных изменений.* является ли это по умолчанию безопасности пережитком того, как системы Unix чаще использовались в прошлом (как серверы)? Или как минимум, просто хороший способ пойти для пользователей Mac не хостинг сервера?*Примечание: функция защиты целостности системы Mac (SIP) также, по-видимому, защищает пользователя от изменения системных библиотек.
- E