[Distutils] setuptools bug report: _get_unpatched() is way too clever (and also returns the wrong module)
zooko
zooko at zooko.com
Thu Mar 27 02:09:45 CET 2008
Bug report #1:
_get_unpatched() returns a module from the system site-packages
instead of the module from the PYTHONPATH which ought to have
precedence, leading to setuptools-0.6c8 invoking setuptools-0.6a9 in
the following stack trace:
PYTHONPATH="/home/buildslave/slave-tahoe/dapper/build/support/lib/
python2.4/site-packages" python ./setup.py develop --prefix="/home/
buildslave/slave-tahoe/dapper/build/support"
...
Running Nevow-0.9.18/setup.py -q bdist_egg --dist-dir /tmp/
easy_install-rk83KQ/Nevow-0.9.18/egg-dist-tmp-nJ8GSy
Traceback (most recent call last):
...
File "/home/buildslave/slave-tahoe/dapper/build/
setuptools-0.6c8.egg/setuptools/command/develop.py", line 102, in
install_for_development
File "/usr/lib/python2.4/site-packages/setuptools-0.6a9-py2.4.egg/
easy_install.py", line 518, in process_distribution
Full details:
https://dev.allmydata.com/buildbot-tahoe/builders/dapper/builds/1427/
steps/compile/logs/stdio
Bug report #2:
_get_unpatched() is way too clever for me to spend time trying to
understand and debug right now:
def _get_unpatched(cls):
"""Protect against re-patching the distutils if reloaded
Also ensures that no other distutils extension monkeypatched the
distutils
first.
"""
What the heck? I don't want to think about that, so instead we're
delisting Ubuntu Dapper as a supported platform, since it is the only
one of our supported platforms on which we have this problem.
Generalized complaint:
There are a lot of things that are too clever in setuptools/
easy_install/eggs. Cleverness makes it work in more situations,
which is good, but it also means that it is harder to know when it
will fail or to understand why it failed.
A simpler system that satisfied 90% of the use cases while failing in
more obvious ways would be appreciated. (Provided, of course, that
those 90% of use cases include the ones that I really care about.)
See my earlier post which proposes such a simplification:
http://mail.python.org/pipermail/python-dev/2008-March/078243.html
Bug report #3:
setuptools/easy_install/eggs needs a bug tracker. (Also, of course,
a buildbot and a rich suite of automated unit tests.) Some of this
message may have been inappropriate for distutils-sig, but what else
am I going to do with this issue before I delist Dapper and forget
all about it?
I would be willing to host a trac instance to serve as a wiki and
issue tracker for setuptools, and a buildbot. (But I don't want to
have anything to do with subversion -- I much prefer darcs.)
Regards,
Zooko
More information about the Distutils-SIG
mailing list