[Python-Dev] Distutils and Distribute roadmap (and some words on Virtualenv, Pip)

kiorky kiorky at cryptelium.net
Fri Oct 9 18:39:11 CEST 2009

I'm crossposting to continue on distutils.

Ian Bicking a écrit :
> On Fri, Oct 9, 2009 at 3:54 AM, kiorky <kiorky at cryptelium.net> wrote:
> Well, if multi-versioned installs were deprecated, it would not be
> necessary to use Setuptools' style of script generation.  Instead you
> could simply dereference the entry point, calling the underlying
> function directly in the script.  This detail is probably more of a
> distutils-sig question, and I don't have a strong opinion.
> But I was thinking specifically of the egg activation buildout puts at
> the top of scripts.

The egg activation is just the result of the constructed working set, which
aggregates all the python packages that fulfill the options inputed by the user.
The only needed packages and nothing else or more.

>>> began development, probably things would have gone this way.  I think
>>> it would make the environment more pleasant for buildout users.  Also
>> * I don't think so, buildout is the only tool atm that permit to have really
>> reproducible and isolated environments. Even, if you use the pip freezing
>> machinery, it is not equivalent to buildout, Control!
> I believe that to fully insulate buildout you need still virtualenv
> --no-site-packages.  But I'm not arguing that virtualenv/pip makes

Right, I do so, but i also drop nothing in that virtualenv site-packages.

> buildout obsolete, only that they have overlapping functionality, and
> I think buildout would benefit from making use of that overlap.

recipes have more features and are another way to do, complementary or not.
(patching, compiling options, pinning version). You have also more control on
what is installed/used/shared with buildout than with the others.

>> * Buildout can have single part to construct required eggs, at a specific
>> version and let you control that. Pip will just search for this version, see
>> that it's not available and fail. You have even recipes (like
>> minitage.recipe.egg that permit to construct eggs with special version when you
>> apply patches onto, thus, you can have the same egg in different flavors in the
>> same eggs cache available for different projects. Those projects will just have
>> to pin the right version to use, Control!.
> In my own work I use multiple virtualenv environments for this use
> case, to similar effect.  pip of course is not a generalized build
> tool, but then minitage.recipe.egg is not the main egg installer
> either.

*.recipe.egg can use caches to avoid duplications among many projects
environments. You setup seems to duplicate stuff around.

>> * Another thing is the "funny script generation", you have not one global
>> site-packages for your project, but one global cache. But from this global
>> cache, your scripts will only have available the eggs you declared, see Control!
>> * Moreover buildout is not only a python packages manager, it's some of its
>> recipes that permit to use it as. Buildout is just a great deployment tool that
>> allow to script and manage your project in a "funny" and "flexible" way, Control!
> Sure; I'm just advocating that buildout more explicitly use some of
> the functionality of virtualenv/pip (which may require some more
> features in those tools, but I'm open to that).  But specific
> discussion of this would probably be more appropriate on
> distutils-sig.

GPG Key FingerPrint: 0x1A1194B7681112AF

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-dev/attachments/20091009/c37551e9/attachment.pgp>

More information about the Python-Dev mailing list