Вместо --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 - все еще лучшее и более аккуратное решение!