[Numpy-discussion] Setuptools leftover junk (original) (raw)
Fernando Perez fperez.net at gmail.com
Wed Jun 28 15:46:07 EDT 2006
- Previous message (by thread): [Numpy-discussion] Setuptools leftover junk
- Next message (by thread): [Numpy-discussion] Setuptools leftover junk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 6/28/06, David M. Cooke <cookedm at physics.mcmaster.ca> wrote:
On Wed, 28 Jun 2006 13🔞35 -0600 "Fernando Perez" <fperez.net at gmail.com> wrote:
> On 6/28/06, David M. Cooke <cookedm at physics.mcmaster.ca> wrote: > > > Done. I've also added a 'setupegg.py' module that wraps running 'setup.py' > > with an import of setuptools (it's based on the one used in matplotlib). > > > > easyinstall still works, also. > > You beat me to it :) > > However, your patch has slightly different semantics from mine: if > bdistegg fails to import, the rest of setuptools is still used. I > don't know if that's safe. My patch would consider /any/ failure in > the setuptools imports as a complete setuptools failure, and revert > out to basic distutils. Note that your patch will still import setuptools if the import of bdistegg fails. And you can't get around that by putting the bdistegg import first, as that imports setuptools first.
Well, but that's still done after the 'if "setuptools" in sys.modules' check, just like yours. The only difference is that my patch treats a later failure as a complete failure, and reverts out to old_setup being pulled out of plain distutils.
(I think bdistegg was added sometime after 0.5; if your version of setuptools is that old, you'd be better off not having it installed.)
Then it's probably fine to leave it either way, as /in practice/ the two approaches will produce the same results.
The use of setuptools by numpy.distutils is in two forms: explicitly (controlled by this patch of code), and implicitly (because setuptools goes and patches distutils). Disabling the explicit use won't actually fix your problem with the 'install' command leaving .egginfo directories (which, incidentally, are pretty small), as that's done by the implicit behaviour.
It's not their size that matters, it's just that I don't like tools littering around with stuff I didn't ask for. Yes, I like my code directories tidy ;)
[Really, distutils sucks. I think (besides refactoring) it needs it's API documented better, or least good conventions on where to hook into. setuptools and numpy.distutils do their best, but there's only so much you can do before everything goes fragile and breaks in unexpected ways.]
I do hate distutils, having fought it for a long time. Its piss-poor dependency checking is one of its /many/ annoyances. For a package with as long a compile time as scipy, it really sucks not to be able to just modify random source files and trust that it will really recompile what's needed (no more, no less).
Anyway, thanks for heeding this one. Hopefully one day somebody will do the (painful) work of replacing distutils with something that actually works (perhaps using scons for the build engine...) Until then, we'll trod along with massively unnecessary rebuilds :)
Cheers,
f
- Previous message (by thread): [Numpy-discussion] Setuptools leftover junk
- Next message (by thread): [Numpy-discussion] Setuptools leftover junk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]