[Distutils] Some negative press for easy_install
ianb at colorstudy.com
Thu Feb 9 23:08:32 CET 2006
Robert Kern wrote:
>>>>setuptools-based packages can be forced to install the old-fashioned way
>>>> setup.py install --single-version-externally-managed
>>>>as long as you also specify a --root directory or a --record file. This
>>>>is of course not upgradeable or uninstallable without help from a
>>>>packaging tool that can utilize the results of --root or --record.
>>>And this particular user did not want that, either.
>>I'm confused. They didn't want to be able to uninstall? Didn't want to
>>point --record to /dev/null, or --root to /? Or something else?
> Didn't want setuptools involved at all. He's wasted more hours on it than he
> ever really wanted to in the days before non-root installs were reasonably
> documented. He just doesn't trust it. He only has setuptools installed at all
> because I've convinced him to distribute eggs of his project (and that I will
> help him troubleshoot setuptools issues).
Setuptools and people using setuptools can only deal with actual issues,
not with vague dislikes. This is open source, issues get resolved, but
there's never any guarantee that issues don't *exist*.
Without --single-version-externally-managed setuptools acts in ways that
can be difficult to handle if .pth files don't work, or you are
installing to an odd location, or something like that. It would be nice
if all those issues can be documented and have useful/easy-to-resolve
failure cases, and all that -- but it's not quite there yet, in part
because it's not completely clear how to make all that work. *With*
--single-version-externally-managed, it acts just like distutils always
Right now one project of mine isn't using setuptools exclusively,
because it still has Python 2.2 compatibility. But I see no reason to
do all sorts of fiddling to support multiple installation techniques,
and deal with tensions about what features can and can't be used because
of multiple supported installation processes.
Right now, the question should be:
* Can we provide an experience similar enough to distutils to make
conservative users happy? If they weren't happy with distutils, then
whatever. I think --single-version-externally-managed does that.
* Are we documenting this properly? That includes, are they going to be
aware of the appropriate documentation at the right time in their
experience. So, knowing about Python setup options before they start.
Knowing about setuptools installation issues when they are using
ez_setup.py. Knowing about package finding when they are using
easy_install, or what they need to understand about eggs and .pth files
during actual installation.
* Are we providing a cohesive experience for the users who want
something better than the previous status quo? Are we guiding them
towards good practices?
I've started using setuptools features even in packages that don't use
plugins or any Egg features. A lot of these will work with distutils,
but fail in weird or confusing ways (e.g., package data missing). Or
I'll have to maintain an easy and an explicit way to do these things,
and they'll get out of sync. I don't think it's going to be a
particularly good experience for the conservative users, and it won't
accomplish anything. At least when we struggle with setuptools it
Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
More information about the Distutils-SIG