Какова цель " 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_profilefile):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