[Distutils] Multi-distribution distributions

Paul Prescod paulp@ActiveState.com
Fri Jan 5 02:49:02 2001

"M.-A. Lemburg" wrote:
> ...
> I don't think I understand your question: do you want a single
> setup.py to call all the other setup.py files similar to a
> recursive Makefile ?

That's exactly what I do *not want*. Recursive makefiles are easy and
I'm not thrilled with recursive setup.py's either. As soon as you do
that you have the usual "make" problem that the dependency checking is
not unified PLUS the distutils-specific problem that any distributions
you build will not be unified. You'll get six RPMs, six windows
executables, etc.

One of ActiveState's goals is to make extension installation as easy for
people without compilers as Python installation is. Binary builds are an
important part of that. If I have to tell a NumPy user to install five
RPMs/Windows executables/MSIs/PPMs for one "logical" modules (NumPy),
they will complain.

I would like each logical "Python extension" to have one setup.py. If it
is to have optional parts then there should be distutils options that
turn those parts on and off.


I could have a special case for NumPy and a special case for ZODB and a
special case for ... But there are around 600 extensions on the Vaults
of Parnassus and about 1800 Perl extensions on CPAN. If I'm going to
provide compiled versions of these to my customers, I need to be able to
automate that process. I need to set up a script that downloads a random
module, runs "python setup.py bdist_winexe" and posts it on a web page
with little or no human intervention.

I've found less than 10 distutils extensions in the world and most of
them are idiosyncratic in one way or another. I think that's just
growing pains but I'm going to try to iron out the idiosyncracies one by
one so that the first extensions can serve as models for the hundreds
that are yet to come.

 Paul Prescod