Вместо --target
опции или --install-options
опции я обнаружил, что следующее работает хорошо (из обсуждения ошибки относительно этой самой вещи на https://github.com/pypa/pip/issues/446 ):
PYTHONUSERBASE=/path/to/install/to pip install --user
(Или установите PYTHONUSERBASE
каталог в вашей среде перед запуском команды, используя export PYTHONUSERBASE=/path/to/install/to
)
При этом используется очень полезный --user
вариант , но говорит это сделать bin
, lib
, share
и другие каталоги , которые вы ожидали бы под настраиваемой приставкой , а не$HOME/.local
.
Затем вы можете добавить это в ваших PATH
, PYTHONPATH
и других переменных , как вы нормальный каталог установки.
Обратите внимание, что вам также может потребоваться указать параметры --upgrade
и --ignore-installed
, если для любых пакетов, от которых это зависит, требуется установить более новые версии в PYTHONUSERBASE
каталоге, чтобы переопределить предоставленные системой версии.
Полный пример:
PYTHONUSERBASE=/opt/mysterypackage-1.0/python-deps pip install --user --upgrade numpy scipy
... чтобы установить scipy
и numpy
упаковать самые последние версии в каталог, который вы затем можете включить в свой каталог PYTHONPATH
(например, для bash и для python 2.6 в CentOS 6 для этого примера):
export PYTHONPATH=/opt/mysterypackage-1.0/python-deps/lib64/python2.6/site-packages:$PYTHONPATH
export PATH=/opt/mysterypackage-1.0/python-deps/bin:$PATH
Использование virtualenv - все еще лучшее и более аккуратное решение!