[Python-Dev] In-Python virtualisation and packaging

Michael Foord fuzzyman at voidspace.org.uk
Mon Jun 13 13:55:52 CEST 2011

On 13/06/2011 12:47, Vinay Sajip wrote:
> Back in March this year, Carl Meyer did some work to see if it was feasible
> to bring virtualenv functionality into Python [1] (code at [2]).
> Carl's changes were to Python code only, which was almost but not quite enough.
> I built on his changes with updates to C code in getpath.c/getpathp.c, and my
> code is at [3]. I've kept it synchronised with the core cpython repo, including
> the recently committed packaging modules.
> While there are issues to work through such as dealing with source builds (and
> no doubt plenty of others), it now seems possible to create virtual
> environments and install stuff into them using just the stdlib (modulo
> currently needing Distribute for the packages which don't yet support
> setup.cfg-based packaging, but it's all done automatically for a user). So you
> can do e.g.
> $ python3.3 -m virtualize /tmp/venv
> $ source /tmp/venv/bin/activate.sh
> $ pysetup3 install Mako
> and so on. A log of early experiments, which seems reasonably promising, is at
> [4].
> Do people agree that it may be fitting, proper and timely to bring
> virtualisation into Python, and are there any fundamental flaws anyone can see
> with the approach used?

It would certainly need a PEP.

There are two options:

Bring the full functionality into the standard library so that Python 
supports virtual environments out of the box. As is the case with adding 
anything to the standard library it will then be impossible to add 
features to the virtualization support in Python 3.3 once 3.3 is 
released - new features will go into 3.4.

Add only the minimal changes required to support a third-party virtual 
environment tool.

Virtual environments are phenomenally useful, so I would support having 
the full tool in the standard library, but it does raise maintenance and 
development issues.

Don't forget windows support! ;-)

All the best,

Michael Foord

> If people want to experiment with this code without cloning and building, I
> created a Debian package using checkinstall, which can be installed using
> sudo dpkg -i pythonv_3.3-1_i386.deb
> and removed using
> sudo dpkg -r pythonv
> I can make this Debian package available for download, if anyone wants it.
> Regards,
> Vinay Sajip
> [1] http://mail.python.org/pipermail/distutils-sig/2011-March/017519.html
> [2] https://bitbucket.org/carljm/cpythonv
> [3] https://bitbucket.org/vinay.sajip/pythonv
> [4] https://gist.github.com/1022601
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk


May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html

More information about the Python-Dev mailing list