virtualenv没有找到更新的模块

时间:2014-08-06 20:55:27

标签: python virtualenv tornado

我在unix服务器上运行带有virtualenv的python-2.7,我没有root访问权限。我使用pip install tornado更新了龙卷风模块--upgrade,因为安装ipython需要tornado> = 3.1.0但是在服务器上默认只安装了2.4版本。但是,当我尝试打开ipython时,它仍然抱怨我没有更新版本。

我确认ipython正确地替换为virtualenv,并且升级确实在virtualenv的网站包中产生了龙卷风版本4.0。

但是,如果我打开python(正确别名为virtualenv)并导入龙卷风,我发现它正在导入早期版本(2.4)而不是我的virtualenv中的新版本。导入另一个仅安装在virtualenv上的软件包正确地从virtualenv的site-packages导入它。

我知道如何告诉python默认使用龙卷风的更新版本而不是virtualenv上的早期版本?

我试过的一个非常hacky的事情是附加到我的virtualenv激活文件中:

PYTHONPATH = path_to_standardVE / LIB / python2.7 /站点包/龙卷风:$ PYTHONPATH

如果我在启动时检查$ PYTHONPATH,它确实在前面包含了这条路径。但是,在python中加载模块仍会加载2.4版本。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试使用pkg_resources中的setuptools

import pkg_resources
pkg_resources.require("Tornado==4.0.0")
import tornado

答案 1 :(得分:0)

可能是virtualEnv继承了全局站点包吗?我不确定在设置virtualEnv时是否添加了-no-site-packages。现在有一种简单的方法可以解决这个问题吗?或者测试这种可能性吗?

no-global-site-packages.txt出现在python2.7目录

orig-prefix.txt包含正在加载的旧版龙卷风的virtualenv之外的父目录