10

我对 virtualenv 有疑问。我经常使用它,我在我的开发机器和几台服务器上使用它。但是在我尝试使用的最后一台服务器上,我遇到了问题。

我使用 --no-site-packages 参数创建了一个 virtualenv,然后在 virtualenv 中安装了一些 python 模块。我可以确认这些模块位于 virtualenvs 站点包内,并且一切似乎都很好。

但是,当我尝试这样做时:source virtualenv/bin/activate然后导入其中一个模块时,python import modulename我收到一个导入错误,提示该模块不存在。这是怎么回事?即使它说它会激活,它似乎也永远不会激活。

有人知道如何解决这个问题吗?

4

3 回答 3

19

有没有机会在这台机器上为“python”激活一个 bash 别名?这将优先于由 activate 进行的 PATH 修改,并可能导致使用错误的 python 二进制文件。

尝试直接运行 virtualenv/bin/python(无需激活),看看是否可以导入您的模块。

如果这解决了它,你只需要摆脱你的 python bash 别名。

于 2009-12-15T20:46:57.980 回答
9

激活虚拟环境后,尝试:

$ python
>>> import sys
>>> sys.executable
...

...并查看您是否正在运行预期的可执行文件。

还要检查:

>>> sys.path
[...]
于 2009-12-15T22:21:52.687 回答
0

IIRC,激活脚本只是将您的虚拟环境首先放在您的路径上,因此当您键入“python”时,它会首先在您的虚拟环境中找到那个。如果激活脚本失败,您始终可以手动编辑路径。另外 - 去这里搜索“激活”: http: //pylonsbook.com/en/1.1/installing-pylons.html#setting-up-a-virtual-python-environment。这将告诉您为什么激活命令会失败。

于 2009-12-15T17:36:56.087 回答