我正在管理HPC上的几个模块,并希望使用pip为该工具安装一些要求。
我不会使用virtualenv,因为它们无法与我们的模块系统配合使用。我想安装软件包的模块本地版本,并且PYTHONPATH
在加载模块时会正确设置,并且当我安装的软件包未同时安装在默认的python环境中时,此方法也可以正常工作。
我不想做的是在安装模块本地版本时卸载软件包的默认python版本。
例如,一个软件包需要numpy==1.6
,而我使用的python安装的默认版本是1.8.0
。当我
pip install --install-option="--prefix=$RE_PYTHON" numpy==1.6
在这里RE_PYTHON
指向module-local site-packages目录的顶部,numpy==1.6
安装正确,然后pip继续,并开始1.8.0
从我正在使用的python树中进行卸载(为什么要卸载较新的版本超出了我的范围,但我想即使在进行本地安装(numpy==1.10.1
)时也要避免这种情况。
如何防止点子这样做?这确实很烦人,我一直无法找到不涉及virtualenv的解决方案。
您必须pip
通过指定-I
选项(或--ignore-installed
)明确告诉忽略当前已安装的软件包。因此,您应该使用:
PYTHONUSERBASE=$RE_PYTHON pip install -I --user numpy==1.6
Ian Bicking在此答案中提到了这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句