[Python-Dev] Proposal for virtualenv functionality in Python

Larry Hastings larry at hastings.org
Sun Feb 21 21:53:33 CET 2010



Ian Bicking wrote:
> On Sun, Feb 21, 2010 at 12:32 PM, Larry Hastings <larry at hastings.org 
> <mailto:larry at hastings.org>> wrote:
> * Override sys.prefix: allow you to put the binary in someplace other 
> than, say, ~/env/bin/python and still support an environment in 
> ~/env/.  Also the use case of looking for libraries in a location 
> based on the interpreter name (not the containing directory), like 
> supporting /usr/bin/python2.7 and /usr/bin/python2.7-dbg.

I'm new to this: why would you want to change sys.prefix in the first 
place?  Its documentation implies that it's where Python itself is 
installed.  I see two uses in the standard library (trace and gettext) 
and they both look like they'd get confused if sys.prefix pointed at a 
virtualized directory.

> * Control global site-packages: people use this all the time with 
> virtualenv.
> * Other locations: well, since Ubuntu/Debian are using dist-packages 
> and whatnot, to get *full* isolation you might want to avoid this. 
>  This is really handy when testing setup instructions.
> * Control installations: right now distutils only really looks in 
> /usr/lib/pythonX.Y/distutils/distutils.cfg for settings.  virtualenv 
> monkeypatches distutils to look in 
> <sys.prefix>/lib/pythonX.Y/distutils/distutils.cfg in addition, and 
> several people use this feature to control virtualenv-local installation.

Okey-doke, I defer to your experience.

Obviously if this is going into Python we can do better than 
monkeypatching distutils.

>       * pythonv's purpose in life is to infer your prefix directory and
>         run "pythonX.X --prefix <prefixdir> [ all args it got ... ]".
>
>
> I don't see any reason to call the other Python binary, it might as 
> well just act like it was changed.  sys.executable *must* point to the 
> originally called interpreter anyway.

If by this you mean pythonv should load the Python shared library / DLL 
directly, that would make it impossible to stack environments.  Which 
I'm still angling for.


/larry/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20100221/be36233c/attachment.html>


More information about the Python-Dev mailing list