[Distutils] [Python Language Summit] Distutils / Packaging survey
zooko at zooko.com
Wed Jan 28 18:03:42 CET 2009
Yesterday I spoke to a couple of hackers who use my allmydata-tahoe
project, which is packaged with setuptools. They complained about
setuptools getting in their way, and I asked them each to name their
top two complaints.
The first hacker, David, said:
David 1. He can't easily install eggs into an arbitrary directory.
Setuptools yells at him loudly when he tries. .pth files work only
in magical directories. easy_install.pth makes it impossible to use
GNU stow. site.py should just just look for .eggs in all directories
David 2. entry_points doesn't work when the svn checkout is just in
PYTHONPATH or ".", and fails if there is a non-existent directory on
The second hacker, Nathan, said:
Nathan 1: You cannot easily install in a non-standard location like /
Nathan 2: You cannot uninstall.
Both David's and Nathan's first desire would be somewhat improved by
my patch http://bugs.python.org/setuptools/issue54 (be more like
distutils with regard to --prefix=). Both of them would be *more*
improved by my proposed extension to the standard Python import
mechanism: "how to easily consume just the parts of eggs that are
good for you"  (which is exactly what David suggested, except he
suggested site.py do that instead of python importer doing it).
David's second problem I don't understand. Perhaps it is a bug in
Nathan's second problem -- you can't uninstall -- is widely known.
Note that using GNU stow is one excellent solution to this problem,
so perhaps if the first problem were solved then we would have
another tool against the second. Also, most users of setuptools
don't seem to realize that they can uninstall almost everything
(everything except scripts) simply by removing the .egg.
I see that PJE has replied to http://bugs.python.org/setuptools/
issue54 . I'll follow-up on that ticket.
Tahoe, the Least-Authority Filesystem -- http://allmydata.org
store your data: $10/month -- http://allmydata.com/?tracking=zsig
More information about the Distutils-SIG