Вместо опции --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 по-прежнему является лучшим и опрятным решением!