代替--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
(对于本示例,在CentOS 6上使用bash和python 2.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仍然是更好,更整洁的解决方案!