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@vdm-dev:~$ /usr/bin/python2.7 -V > > Python 2.7.3rc2 > > jaraco@vdm-dev:~$ env/bin/python -V > > Python 2.7.2 > > jaraco@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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com