Pip --user устанавливает пакет в каталог пользователя по умолчанию в Windows 10 - PullRequest
0 голосов
/ 12 сентября 2018

У меня проблема в Windows 10, где установлены Python 2.6 и 2.7.

python -m pip install myPack --no-index --find-links=. --user

При запуске этой команды с пользователем AutoUser она устанавливает myPack в По умолчанию каталог пользователя C: \ Users \ Default \ Python \ Python27 \ site-packages или C: \ Users \ По умолчанию \ Appdata \ Roaming \ Python \ site-packages вместо C: \ Users \ Autouser \ Appdata \ Roaming \ Python \ site-packages

  • Установка выполняется автоматически после входа в Windows, но в журналах видно, что «запрос пользователя» возвращает строку с AutoUser (до вызова pip).
  • Другие ОС не имеют этой проблемы.
  • Воспроизведение нестабильно в Windows 10: возможно, 1 раз из 100.
  • Правда, что python 2.6 также установлен на этих машинах, но я не уверен, что это имеет смысл: 2.6 выходит позже 2.7 в системной переменной Path. Здесь пишут, что это может быть проблемой, но pip не путает версии Python, он путает пользовательские каталоги.

Путь:

C:\ProgramData\Oracle\Java\javapath;C:\Python27\;C:\Python27\Scripts\;C:\Python26\;C:\Python26\Scripts;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\ProgramData\chocolatey\bin;

Версия Python:

python --version
Python 2.7.13

Версия в пипсах:

python -m pip --version
Pip version: pip 9.0.1 from C:\Python27\lib\site-packages (python 2.7) 

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

К сожалению, мне пришлось быстро решить проблему на производстве, поэтому я сдался и установил ее без параметра --user в каталоге c: / python27 / ....Я думаю, что одно из предложений @ DeltaMarine101 поможет.

0 голосов
/ 21 сентября 2018

Вы можете попробовать установить цель установки с помощью опции --target, например, так:

pip install --target=C:\Users\Autouser\Appdata\Roaming\Python\site-packages package_name

Если это не сработает, попробуйте использовать --install-option следующим образом:

pip install --install-option="--prefix=$PREFIX_PATH" package_name

Наконец, если ничего не помогает, вот еще один способ сделать это:

PYTHONUSERBASE=/path/to/install/to pip install --user

Вы можете указать версию Python для установки пакета, используя python2.x -m pip install ...

Надеюсь, один из них вам поможет! :)

...