Python 2.7 under virtualenv: broken `site.py`

When I create a new virtualenv with Python 2.7, I cannot use 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 doesn't seem to have the new features that should be there from Python 2.7.

Any suggestions?

EDIT: Even if I do not use --no-site-packages , the problem remains:

 $ 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
source share
3 answers

This was a bug fixed in later versions of virtualenv. I looked through the tickets, but I could not find the right one ...

+1
source

You use --no-site-packages , which forces the new environment not to inherit existing site packages.

0
source

Maybe this is not what causes your problem, but it helped me after 4 hours of debugging (I also answer the question after a year :).

The virtualenv/bin/python file must be executed.

So...

 chmod +x virtualenv/bin/python 

worked here.

0
source

All Articles