4

当我用 Python 2.7 创建一个新的 virtualenv 时,我不能使用site.getsitepackages()

$ virtualenv testenv -p python2.7 --no-site-packages
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in testenv/bin/python2.7
Also creating executable in testenv/bin/python
Installing setuptools............done.
Installing pip...............done.
$ cd testenv/
$ source bin/activate
(testenv)$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import site
>>> site.getsitepackages()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>

AttributeError: 'module' object has no attribute 'getsitepackages'

它似乎site.py没有 Python 2.7 中应该有的新功能。

有什么建议么?

编辑:即使我不使用--no-site-packages问题仍然存在:

$ virtualenv testenv -p python2.7
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in testenv/bin/python2.7
Also creating executable in testenv/bin/python
Installing setuptools............done.
Installing pip...............done.
$ cd testenv/
$ source bin/activate
(testenv)$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import site
>>> site.getsitepackages()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'getsitepackages'
4

3 回答 3

1

这是在更高版本的 virtualenv 中修复的错误。我翻遍了门票,但我找不到合适的……

于 2012-10-17T14:44:56.477 回答
0

您正在使用--no-site-packages,这会导致新环境不继承现有的站点包。

于 2011-05-21T15:45:46.227 回答
0

可能这不是导致您的问题的原因,但它在调试 4 小时后帮助了我(我也在 1 年后回答这个问题:)。

virtualenv/bin/python文件必须是可执行的。

所以...

chmod +x virtualenv/bin/python

在这里工作。

于 2012-06-20T20:57:29.020 回答