使用pip将Python包安装到不同的目录中?
我知道明显的答案是使用virtualenv和virtualenvwrapper,但由于各种原因,我不能/不想这样做。
那么我该如何修改这个命令
pip install package_name
使pip
安装在默认site-packages
以外的地方?
使用:
pip install --install-option="--prefix=$PREFIX_PATH" package_name
您可能还想使用--ignore-installed
来强制使用此新前缀重新安装所有依赖项。 您可以多次使用--install-option
来添加可用于python setup.py install
任何选项( --prefix
可能是您想要的,但可以使用更多选项)。
--target开关是你正在寻找的东西:
pip install --target = d: somewhere other than default package_name
但是您仍然需要将d:somewhereotherthanthedefault
添加d:somewhereotherthanthedefault
PYTHONPATH
,以便从该位置实际使用它们。
如果目标交换机不可用,请升级pip:
在Linux或OS X上:
pip install -U pip
在Windows上(这可以解决一个问题):
python -m pip install -U pip
而不是--target
选项或--install-options
选项,我发现以下方法效果很好(从https://github.com/pypa/pip/issues/446上的关于此问题的讨论):
PYTHONUSERBASE=/path/to/install/to pip install --user
(或者在运行命令前使用export PYTHONUSERBASE=/path/to/install/to
在您的环境中设置PYTHONUSERBASE
目录)
这使用非常有用的--user
选项,但告诉它使用自定义前缀而不是$HOME/.local
创建bin
, lib
, share
和其他目录。
然后,您可以将它添加到PATH
, PYTHONPATH
和其他变量中,就像您正常的安装目录一样。
请注意,如果任何需要在PYTHONUSERBASE
目录中安装的更新版本的PYTHONUSERBASE
覆盖系统提供的版本,则可能还需要指定--upgrade
和--ignore-installed
选项。
一个完整的例子:
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仍然是一个更好和更好的解决方案!
链接地址: http://www.djcxy.com/p/26395.html上一篇: Install a Python package into a different directory using pip?