On 6/28/06, David M. Cooke <[EMAIL PROTECTED]> 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). > > easy_install still works, also.
You beat me to it :) However, your patch has slightly different semantics from mine: if bdist_egg 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. Let me know if you want me to put in my code instead, here's a patch from my code against current svn (after your patch), in case you'd like to try it out. Cheers, f Index: core.py =================================================================== --- core.py (revision 2701) +++ core.py (working copy) @@ -1,20 +1,30 @@ - import sys from distutils.core import * -if 'setuptools' in sys.modules: - have_setuptools = True - from setuptools import setup as old_setup - # easy_install imports math, it may be picked up from cwd - from setuptools.command import develop, easy_install +# Don't pull setuptools in unless the user explicitly requests by having it +# imported (Andrew's trick). +have_setuptools = 'setuptools' in sys.modules + +# Even if setuptools is in, do a few things carefully to make sure the version +# is recent enough to have everything we need before assuming we can proceed +# using setuptools throughout +if have_setuptools: try: - # very old versions of setuptools don't have this + from setuptools import setup as old_setup + # very old setuptools don't have this from setuptools.command import bdist_egg + # easy_install imports math, it may be picked up from cwd + from setuptools.command import develop, easy_install except ImportError: + # Any failure here is probably due to an old or broken setuptools + # leftover in sys.modules, so treat it as if it simply weren't + # available. have_setuptools = False -else: + +# If setuptools was flagged as unavailable due to import problems, we need the +# basic distutils support +if not have_setuptools: from distutils.core import setup as old_setup - have_setuptools = False from numpy.distutils.extension import Extension from numpy.distutils.command import config Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion