Различные пользовательские места установки для pip2 и pip3 - PullRequest
0 голосов
/ 30 августа 2018

При использовании pip с флагом --user по умолчанию устанавливается каталог ~ / .local / lib / pythonX.Y / site-packages, где X.Y указывает версию python. Это позволяет отделить пакеты, установленные с помощью pip2, от пакетов, установленных с помощью pip3.

Однако при использовании файла pip.conf для указания целевого установочного каталога я видел только глобальный параметр, такой как:

[global]
target=/data/user/pip

Это работает, но не отделяет пакеты, установленные pip2, от пакетов, установленных через pip3, что может вызвать проблемы. Есть ли способ указать разные местоположения для пакетов, установленных через pip2 и тех, которые установлены через pip3?

1 Ответ

0 голосов
/ 30 августа 2018

К сожалению, в конфигурации pip нет возможности обрабатывать вещи, зависящие от версии. Текущее решение об этом :

... это не то, что нам действительно нужно.

Однако цель установки пользователя фактически настраивается не через --target, а через переменную среды PYTHONUSERBASE. Это означает, что вы можете передать базу пользователей из env, например PYTHONUSERBASE=/some/dir pip install --user pkgname. Если вы хотите сохранить пользовательский каталог dir, я бы выбрал псевдоним. Пример для bash: в вашем .bashrc / .bash_profile добавьте:

alias pip2='PYTHONUSERBASE=/tmp/pip2 pip2'
alias pip3='PYTHONUSERBASE=/tmp/pip3 pip3'
alias pip3.7='PYTHONUSERBASE=/tmp/pip3.7 pip3.7'
# etc

Сохраните файл, перезагрузите с

source ~/.bashrc

или

source ~/.bash_profile

или просто откройте новый терминал. Теперь

$ pip2 install --user pkgname

установит /tmp/pip2 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...