[Distutils] PEP439 and backward compat / easy_install / distlib

Ronald Oussoren ronaldoussoren at mac.com
Tue Mar 26 14:16:54 CET 2013


On 26 Mar, 2013, at 13:27, Daniel Holth <dholth at gmail.com> wrote:
> stall themselves, they can just mention setup-requires and the installer grabs the necessary setuptools.
> > >
> > That can only be done for sdists with 2.0 metadata, sdists for older versions don't have a setup-requires in their metadata.  This is not just for installing, if you want to use setuptools in your setup.py you'll have to make sure it is installed in your setup.py, and with the current version of the packaging tools this means you have to use something like ez_setup.py or tell users to install setuptools themselves.
> 
> Yes, which is why we propose to assume Setup-Requires-Dist: setuptools if Metadata-Version < 2.0. Then a no-op ez_setup.py can be added to sys.modules before setup.py runs and the installer will have a lot more control over that side effect.

Just because I'm curious, is that control needed to make sure that a new enough version of setuptools gets used (e.g. one that supports modern features, instead of the 2 year old version that is mentioned in ez_setup.py for $SOME_OLD_PACKAGE)? 

Just assuming that every sdist with old metadata requires setuptools would work, although it will be strange to see that some packages @work that use plain disutils suddenly seem to require setuptool :-)

> 
> 
> These improved installers will target both 2.7 and 3.4. I do understand that some people feel it is harder to say "manually download the installer and then install what you want" rather than "manually download and install the package you want".

No me.  I'm glad to see that the hard work by everyone working in the packaging space is coming to fruition.  Infrastructure work is almost never glamorous, and work on Python's packaging system appears to be more stressful than average.

Ronald



More information about the Distutils-SIG mailing list