[Distutils] [Fwd: Re: Annoucing distribute project]

David Cournapeau david at ar.media.kyoto-u.ac.jp
Fri Sep 26 11:44:43 CEST 2008


Uwe Schmitt wrote:
> Hi,
>
> is anybody aware of numscons ?
> http://conference.scipy.org/static/wiki/numscons.pdf

At least I am, since I am the main - and sole author at this point - of
numscons :) Numscons was created to solve a specific problem: distutils
is a nightmare for extensions which need to control the compilation
process in a fine-grained manner. But numpy/scipy is quite special, and
numscons would be overkill for most python packages. And it does not
solve at all the problems people are talking about here (that is mostly
deployment issues).

The reasons why numscons was created are the same as why people want to
get rid of distutils, though, that is distutils is very inflexible if
you have special needs (and numpy/scipy needs are special; how many
python packages need fortran  ?), which is why I think it is somewhat
relevant to this discussion.

Numscons does show some points which are worth being pointed out IMHO:
    - it is possible to add a new command which handle a pretty big
portion of distutils (the arcane part Guido was talking about I believe)
in a sane manner, and it could be done gradually (scons is called from
distutils, and scons is a distutils command: you do python setup.py
scons to build your extensions, which means it is transparent for users
at least).
    - It took me a few weeks to get simple python extensions built on
most platforms (of which a big portion was to understand distutils and
numpy.distutils). Of course, it would take more time to deal with all
platforms python supports (more exactly all the corner cases), but I
don't think it is that difficult.
    - A "miniscons" would be needed, but there are already many projects
which do that, indicating that it should be relatively easy. The first
rake prototype was 100 lines I believe; vellum is 300 lines. Something
like vellum would be enough for most needs I believe.

Of course, doing it for python itself means some issues which were
non-existent in numpy's case become big problems (bootstrapping issues,
for once).

cheers,

David


More information about the Distutils-SIG mailing list