[Distutils] distribute and buildout: best practices?

Tarek Ziadé ziade.tarek at gmail.com
Wed Oct 7 15:32:56 CEST 2009

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.

This has to be done manually in Distribute's setup.py because the
micro-dependency managment
system provided by easy_install and pkg_resources doesn't know how to
deal with mutual
exclusive dependencies or interchangeable dependency.

But this is not a new problem: if you add dependencies in your
distribution, you are impacting
the whole execution environment, for every other distribution.

Now you can say it outloud in your distribution documentation, that
your distribution requires
Distribute because it has more bugfixes.


Tarek Ziadé | http://ziade.org | オープンソースはすごい! | 开源传万世,因有你参与

More information about the Distutils-SIG mailing list