我需要在没有root访问权限的大型服务器上使用python。我想使用比机器上全局安装的版本更高的numpy版本。virtualenv
正是为此目的而设计的,我创建了我的虚拟环境,并使用以下命令激活它:
virtualenv my_personal_python
source my_personal_python/bin/activate
然后安装我感兴趣的新版本的库
pip install numpy==1.6.0
问题是,当我现在导入numpy时,它仍然会导入过时的全局版本,而不是安装在虚拟环境的my_personal_python/lib/python2.6/site-packacges
目录中的版本。
我已经知道一种可能的解决方案,即--no-site-package标志,如下所示:
virtualenv --no-site-packages my_personal_python
当我使用这个标志时,导入的行为就像我想要的那样。但我不想使用这个标志,因为我不想在本地重新安装所有包,我只想覆盖其中的几个包。
(我使用的是python 2.6,virtualenv 1.6.1,并且我的机器上的PYTHONPATH变量没有设置。)
更新即使我将虚拟环境中的site-packages目录添加到python路径的开头,numpy也不会从该位置导入(尽管其他包是从该位置导入的)。也许这个问题是numpy特有的,一般不会出现在包中。
https://stackoverflow.com/questions/6510034
复制相似问题