[Distutils] should setuptools be an implicit dependency of every egg?
faassen at infrae.com
Tue Sep 19 11:43:15 CEST 2006
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