[Distutils] pip vs easy_install vs distutils2

P.J. Eby pje at telecommunity.com
Sat May 29 18:32:17 CEST 2010


At 10:19 AM 5/29/2010 +0200, Tarek Ziadé wrote:
>I was not thinking about this proposal. If this what Guido proposed at
>the summit, then I misunderstood.

I don't know what he proposed at the summit - I'm referring to the 
bootstrap script he wrote that actually does this.  It was a couple 
years ago on Python-Dev, IIRC.


>The problem with the feature you describe (bootstrap embed in the
>archive itself) is that we imply that the packager chooses himself an
>installer and forces the end-user to use it when he installs the
>software. This means that the end user might end up with several
>installers installed for the same Python.

So?  It's not like they're going to accidentally run 'easy_install' 
when they meant to type 'pip', or vice versa.  ;-)


>It also implies that the
>developer provides a smart setup.py script that embeds that bootstrap,
>and runs some code.

Only if they need something beyond what the distutils provide.


>It will also allow distributions to be "dumb" envelopes with static
>metadata that are the same all the time, no matter which tool created
>them, and eventually remove setup.py in favor of statically described
>metadata using PEP 345.

For packages with complex build requirements or distutils extensions 
(e.g. numpy), this is unlikely to happen any time soon.

Conversely, for packages where this *is* the case, the current 
distutils is adequate, and having a bootstrapper that can install 
them would be a win.


>Today, for instance, if an installer wants to install a distribution
>based on setuptools, it has to run the "egg_info" command to extract
>the metadata, on the target system.

It's a good thing Guido loaned me the time machine so I could go back 
to 2005 and fix that one, then:

   http://svn.python.org/view/sandbox/trunk/setuptools/setuptools/command/sdist.py?view=diff&r1=41093&r2=41094

Five years should be long enough ago that by now all the 
setuptools-based source distributions on PyPI today will already have 
the metadata you need...  so when you go back and try again to build 
your new installer today, it will already be there for you to 
use.  Just download any random setuptools-based sdist from PyPI and 
run "tar -tzf" or "unzip -v" on it to see!

For that matter, it's long enough ago that you should also have the 
fix already retroactively included in Distribute as well, so you 
should probably even be able to look at one of Distribute's own 
source distributions and see that it now contains the metadata you 
require.  ;-)



More information about the Distutils-SIG mailing list