con*_*lee 22 python virtualenv
我需要在没有root访问权限的大服务器上使用python.我想使用比在机器上全局安装的numpy更新版本的numpy. virtualenv是为此目的而设计的,我创建了我的虚拟环境并使用以下命令激活它:
virtualenv my_personal_python
source my_personal_python/bin/activate
Run Code Online (Sandbox Code Playgroud)
然后我安装了我感兴趣的库的新版本
pip install numpy==1.6.0
Run Code Online (Sandbox Code Playgroud)
问题是,当我现在导入numpy时,它仍然导入过时的全局版本,而不是虚拟环境my_personal_python/lib/python2.6/site-packacges目录中的一个安装.
我已经知道一个可能的解决方案, - no-site-packages标志,如:
virtualenv --no-site-packages my_personal_python
Run Code Online (Sandbox Code Playgroud)
当我使用这个标志时,导入就像我想要的那样.但我不想使用这个标志,因为我不想在本地重新安装所有软件包,我只想覆盖其中的几个.
(我使用的是python 2.6,virtualenv 1.6.1,我的机器上的PYTHONPATH变量没有设置.)
更新 即使我将site-packages目录从虚拟环境添加到python路径的开头,也不会从此位置导入numpy(尽管从此位置导入其他包).也许这个问题特定于numpy,一般不会出现包.
仔细检查一下.
which python
which pip
现在你确定你正在运行正确的,启动python和:
import sys
print "\n".join(sys.path)
Run Code Online (Sandbox Code Playgroud)
然后退出python并键入,echo $PATH然后echo $PYTHONPATH
我怀疑问题是可见的,如果你不能通过设置修复它,PYTHONPATH那么你可以用site模块做.
| 归档时间: |
|
| 查看次数: |
9530 次 |
| 最近记录: |