[Distutils] distribute and buildout: best practices?
Reinout van Rees
reinout at vanrees.org
Wed Oct 7 15:55:10 CEST 2009
On 2009-10-07, Tarek Ziadé <ziade.tarek at gmail.com> wrote:
> On Wed, Oct 7, 2009 at 2:32 PM, Reinout van Rees <reinout at vanrees.org> wrote:
>> I'm still not 100% sure whether it is safe to put "distribute" in the
>> install_requires list of a package right now, however.
> It depends on what you mean by safe. (beside any bootstraping bug we might
> find in the near future, even if this code seems stabilized now)
> Adding distribute in install_requires will have the effect of calling the
> Distribute setup.py and renaming an existing setuptools installation
> detected in the environment so it doesn't get on the way, and to add a
> setuptools*.egg-info in the environment so the Setuptools dependency is
> still met (to avoid Distribute to be overriden in turn)
> By "environment" I mean here the sys.path than gets scanned by pkg_resources
> when looking for Distributions.
> So when your package is installed, its impact will depend on the environment
> its setup.py was called in.
> The impact is : now the environment is using Distribute.
Ok, I've experimented some more and came to some sort of conclusion in the bug
The warning problem occurs if the environment (which you mention above) uses
distribute. This environment could be a buildout egg cache. If a buildout,
which uses this cache, only knows about setuptools (as there's no distribute
depencency in that buildout), you'll get the extra "hey, I already loaded
But, and that's the mostly-good news, these warnings only occur if you have a
global setuptools and haven't installed distribute globally yet. In that
case, somehow there's a fallback to the global setuptools which omits those
IF warnings THEN install it also globally, basically.
And, from what I see, a global install works just fine with a buildout that
doesn't use the new bootstrap. Provided the setuptools in the egg cache has
been patch already by some other buildout :-)
Reinout van Rees - reinout at vanrees.org - http://reinout.vanrees.org
Software developer at http://www.thehealthagency.com
"Military engineers build missiles. Civil engineers build targets"
More information about the Distutils-SIG