[Python-Dev] Virtualenv not portable from Python 2.7.2 to 2.7.3 (os.urandom missing) (original) (raw)
Jason R. Coombs jaraco at jaraco.com
Wed Mar 28 22:56:30 CEST 2012
- Previous message: [Python-Dev] Virtualenv not portable from Python 2.7.2 to 2.7.3 (os.urandom missing)
- Next message: [Python-Dev] Virtualenv not portable from Python 2.7.2 to 2.7.3 (os.urandom missing)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
-----Original Message----- From: python-dev-bounces+jaraco=jaraco.com at python.org [mailto:python-_ _dev-bounces+jaraco=jaraco.com at python.org] On Behalf Of Carl Meyer Sent: Wednesday, 28 March, 2012 14:48
The workaround is easy: just re-run virtualenv on that path with the new interpreter.
Thanks for the quick response Carl. I appreciate all the work that's been done.
I'm not sure the workaround is as simple as you say. Virtualenv doesn't replace the 'python' exe if it already exists (because it may already exist for a different minor version of Python (3.2, 2.6)). So the procedure is probably something like this:
For each version of Python the virtualenv wraps (ls env/bin/python?.?):
- Run env/bin/python -V. If the result starts with "Python ", remove env/bin/python.
- Determine if that Python version uses distribute or setuptools.
- Run virtualenv --python=python env (with --distribute if appropriate)
I haven't yet tested this procedure, but I believe it's closer to what will need to be done. There are probably other factors. Unfortunately, to reliably repair the virtualenv is very difficult, so we will probably opt with re-deploying all of our virtualenvs.
Will the release notes include something about this change, since it will likely have broad backward incompatibility for all existing virtualenvs? I wouldn't expect someone in operations to read the virtualenv news to find out what things a Python upgrade will break. Indeed, this update will probably be pushed out as part of standard, unattended system updates.
I realize that the relationship between stdlib.os and posixmodule isn't a guaranteed interface, and the fact that it breaks with virtualenv is a weakness of virtualenv. Nevertheless, virtualenv has become the defacto technique for Python environments. Putting my sysops cap on, I might perceive this change as being unannounced (w.r.t. Python) and having significant impact on operations. I would think this impact deserves at least a note in the release notes.
Regards, Jason -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 6662 bytes Desc: not available URL: <http://mail.python.org/pipermail/python-dev/attachments/20120328/1562258f/attachment.bin>
- Previous message: [Python-Dev] Virtualenv not portable from Python 2.7.2 to 2.7.3 (os.urandom missing)
- Next message: [Python-Dev] Virtualenv not portable from Python 2.7.2 to 2.7.3 (os.urandom missing)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]