[Python-Dev] Virtualenv not portable from Python 2.7.2 to 2.7.3 (os.urandom missing)
Carl Meyer
carl at oddbird.net
Wed Mar 28 20:48:21 CEST 2012
Hi Jason,
On 03/28/2012 12:22 PM, Jason R. Coombs wrote:
> To reproduce, using virtualenv 1.7+ on Python 2.7.2 on Ubuntu, create a
> virtualenv. Move that virtualenv to a host with Python 2.7.3RC2 yields:
>
> jaraco at vdm-dev:~$ /usr/bin/python2.7 -V
>
> Python 2.7.3rc2
>
> jaraco at vdm-dev:~$ env/bin/python -V
>
> Python 2.7.2
>
> jaraco at vdm-dev:~$ env/bin/python -c "import os; os.urandom()"
>
> Traceback (most recent call last):
>
> File "<string>", line 1, in <module>
>
> AttributeError: 'module' object has no attribute 'urandom'
>
> This bug causes Django to not start properly (under some circumstances).
>
> I reviewed the changes between v2.7.2 and 2.7 (tip) and it seems there
> was substantial refactoring of the os and posix modules for urandom.
>
> I still don’t fully understand why the urandom method is missing
> (because the env includes the python 2.7.2 executable and stdlib).
In Python 2.6.8/2.7.3, urandom is built into the executable. A
virtualenv doesn't contain the whole stdlib, only the bits necessary to
bootstrap site.py. So the problem arises from trying to use the 2.7.3
stdlib with a 2.7.2 interpreter.
> I suspect this change is going to cause some significant backward
> compatibility issues. Is there a recommended workaround? Should I file a
> bug?
The workaround is easy: just re-run virtualenv on that path with the new
interpreter.
I was made aware of this issue a few weeks ago, and added a warning to
the virtualenv "news" page:
http://www.virtualenv.org/en/latest/news.html I'm not sure where else
to publicize it.
Carl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-dev/attachments/20120328/d40373ed/attachment.pgp>
More information about the Python-Dev
mailing list