[Distutils] The problem with Setuptools on Python 3.

P.J. Eby pje at telecommunity.com
Mon Apr 20 19:02:36 CEST 2009


At 06:30 PM 4/20/2009 +0200, Lennart Regebro wrote:
> > Because that's the one that generates the metadata setuptools needs to run,
> > test itself, etc.
>
>No, setup3.py does that.

I thought you couldn't import setuptools in setup3.py, for all the 
reasons you just described?

>Why do I need setup.py?

To define the core entry points, basically.  These are really 
bootstrapped from the existing entry_points.txt (which is why it's in 
SVN), but they need to be regenerated at egg_info/bdist_egg/install 
time to match the current Python version.

Apart from that, I believe setuptools only uses itself for finding 
its own packages (including data) and manifest building (i.e. finding 
files that are under SVN control).

So I suppose that if you dropped the use of find_packages(), you 
could make a setup.py that would let you run distutils commands on 
the code base, I just don't see how you'd get any setuptools-level 
commands to work properly without setuptools being imported first.

i.e., you could probably manage having one setup.py, or two 
setup.py's whose only difference is whether they import setuptools 
and use find_packages; like a setup3.py that does distutils, and a 
regular setup.py that imports setuptools and then execfiles setup3.py.

None of this makes setuptools any less reliant on itself for testing 
and building, though, since the core entry points have to exist in 
order for commands to be found, options to be verified, etc.



More information about the Distutils-SIG mailing list