[Distutils] should setuptools be an implicit dependency of every egg?

Martijn Faassen faassen at infrae.com
Tue Sep 19 11:43:15 CEST 2006

Hi there,

Normally setuptools is installed system-wide. When you install an egg 
using easy_install, the egg itself can count on setuptools being 
available, and use for instance its resource management API and 
namespace package marking facility. It therefore is unnecessary to users 
to mark setuptools as a dependency to their eggs in setup.py. Since it's 
unnecessary, it'll just not be done.

This works fine in the case of system-wide installation of setuptools, 
but when installing eggs locally, such as in Buildout, this can lead to 
problems. Buildout makes sure that only eggs that are dependencies are 
importable when starting up a script. An egg that is depending on 
setuptools implicitly will therefore not have access to setuptools 

Telling everybody who makes eggs that use setuptools to please take 
Buildout into account and include setuptools as an explicit dependency 
in setup.py seems like a hopeless exercise, as things will just plain 
work for most egg users and developers, at least until the possible 
eventuality of Buildout reaching critical mass in the community.

What would work for Buildout, and as far as I can see does no harm to 
everybody else, is to make setuptools an implicit dependency of all 
eggs. It won't affect anyone else (but for a hopefully tiny performance 
impact) as setuptools is definitely available on the system when 
installing the egg through easy_install anyway.

So, would this be something that could be added to setuptools?



More information about the Distutils-SIG mailing list