[Distutils] virtualenv3
Laura Creighton
lac at openend.se
Fri May 6 23:30:53 CEST 2011
In a message of Fri, 06 May 2011 16:49:15 EDT, Barry Warsaw writes:
>On May 04, 2011, at 11:15 AM, Carl Meyer wrote:
>
>>Virtualenv itself supports Python 2.4 - 3.2 from a single codebase,
>>beginning with the 1.6 release a few weeks ago, thanks to Vinay Sajip.
>>Try it out!
>
>So I have some more information on this. Debian Wheezy has 1.6 now, but
> -p python3 still did not work. Here is the bug report:
>
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D625784
>
>The problem occurs when virtualenv.py re-invokes itself. As you know, Python
>puts the script's directory in sys.path[0]. On Debian virtualenv.py is a
>symlink to /usr/share/pyshared/virtualenv.py so it's /usr/share/pyshared
>that gets put on sys.path[0] on the second invocation. That directory will
>contain Python 2's version of pkg_resources.py which naturally causes the
>traceback.
>
>OT1H, this bug is due Debian policy of symlinking its modules so that they
>can be shared, which doesn't play nicely with virtualenv's re-invocation.
>OTOH,
>sys.path[0] isn't helpful in any case, and I can imagine some situations
>where that could cause problems even on non-Debian systems.
>
>I've worked up a patch, which you can find in the above tracker, that just
>deletes sys.path[0] when VIRTUALENV_INTERPRETER_RUNNING is 'true' and when
>sys.path[0] == '/usr/share/pyshared' (the latter is just paranoia ;).
>I've
>verified this fixes the problem on Debian and doesn't seem to cause any bad
>side-effects. I wonder if a similar patch shouldn't be applied upstream
>though, to be sure that the re-invocation is insulated from the surrounding
>environment?
>
>Another suggestion given was to put virtualenv.py in a private directory,
>i.e. not in Debian's equivalent of site-packages. I don't know whether
>there are other packages that try to import virtualenv.py though, so to
>be safe, I just went with the sys.path hacking.
>
>Any thoughts?
>
>Cheers,
>-Barry
Holger will have an opinion on this. And I think tox http://codespeak.net/tox/index.html
tries to import virtualenv.py .
Laura
More information about the Distutils-SIG
mailing list