[Python-Dev] setuptools in 2.5. (summary) (original) (raw)

Ian Bicking ianb at colorstudy.com
Thu Apr 20 23:00:44 CEST 2006


M.-A. Lemburg wrote:

Anthony Baxter wrote:

In an attempt to help this thread reach some sort of resolution, here's a collection of arguments against and in favour of setuptools in 2.5. My conclusions are at the end. Thanks for the summary. I'd like to add some important aspects (for me at least) that are missing: - setuptools should not change the standard distutils "install" command to install everything as eggs Eggs are just one distribution format out of many. They do server their purpose, just like RPMs, DEBs or Windows installers do.

I think Eggs can be a bit confusing. They really serve two purposes, but using the same format. They are a distribution mechanism, which is probably one of the less important aspects, and there's the installation format.

So you don't have to use them as a distribution format to still use them as an installation format. As an installation format they overlap with OS-level metadata, but that OS-level metadata has always been completely unavailable to Python programs so a little duplication has to be put up with. And anyway, the packaging systems can manage the system integrity well enough to keep that information in sync. Even though eggs overlap, they don't have to compete.

However, when running "python setup.py install" you are in fact installing from source, so there's no need to wrap things up again.

The distutils default of actually installing things in the standard Python is good, has worked for years and should continue to do so.

The extra information needed by the dependency checking can easily be added to the package directory of the installed package or stored elsewhere in a repository of installed packages or as separate egg-info directory if we want to stick with setuptools' way of using the path name for getting meta-information on a package.

Phillip can clarify this more, but I believe he's planning on Python 2.5 setuptools to install similar to distutils, but with a sibling .egg-info directory. There's already an option to do this, it's just a matter of whether it will be the default.

A package with a sibling .egg-info directory is a "real" egg, but that it's a real egg probably highlights that eggness can be a bit confusing.

Placing the egg-files into the system as ZIP files should be an option, e.g. as separate "installegg" command, not the default.

I would prefer this too; even though Phillip has fixed the traceback problems for 2.5 I personally just prefer files I can view in other tools as well (my text editor doesn't like zip files, for instance). I typically make this change in distutils.cfg for my own systems.

-- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org



More information about the Python-Dev mailing list