[Distutils] PEP439 and backward compat / easy_install / distlib

Richard Jones richardjones at optushome.com.au
Mon Mar 25 00:07:32 CET 2013


On 24 March 2013 20:48, holger krekel <holger at merlinux.eu> wrote:
> backward compat with present-day release files: the PEP should state
> it as a goal or at least discuss it in some depth.  In that context, the
> choice of providing a bootstrap for pip rather than easy_install needs
> reasoning.  One problem with pip, compared to easy_install, is
> that it doesn't support eggs which is a problem particularly on
> Windows machines where often no fitting C compiler is available.  If the
> remedy here is to support wheels and recommend it's use, it is still a
> backward compatibility problem: many users will not be able to use the
> builtin-supported installer to install todays existing egg release files.

This is a valid concern. Obviously "pip install easy_install" is not a
solution - especially since the general intention is to deprecate
easy_install eventually (as explained in Nick's response). I did not
discuss eggs with the pip developers while at PyCon which is quite
unfortunate. I would appreciate any insights from those devs on the
matter.

It may be that wheel convert can solve this issue for some eggs.
Unless it can be fully automated it's not going to solve it for all.


> setuptools and distlib:  Even if Python3.4+ had a mature distlib
> providing minimal setuptools functionality, how would it work for the
> typical "python setup.py install" which is invoked by pip?  Often those
> setup.py scripts depend on a setuptools package.

This is not the bootstrap's problem (and hence not the PEP's) since
the bootstrap exists *solely* to install the pip implementation. If
that's not clear enough in the PEP then I can attempt to make it
clearer.


On 25 March 2013 03:04, Nick Coghlan <ncoghlan at gmail.com> wrote:
> - once we can bootstrap pip, then bootstrapping easy_install if it
> still needed for some edge cases will be as easy as installing
> anything else that is either pure Python or publishes an appropriate
> wheel for the platform: "pip install setuptools"

I'm -0 on the idea of also including an easy_install bootstrap in the
Python install, since I personally would prefer not to require users
to have to deal with two install tools which behave slightly
differently.


On 25 March 2013 07:21, holger krekel <holger at merlinux.eu> wrote:
> If you have to explain pip-bootstrapping, then
> install setuptools, then the actual package, it's not much of an
> improvement anymore.

The point of this PEP is to remove the first "explain pip
bootstrapping" step from this equation.

I had thrown around the idea of the pip bootstrap installing both pip
implementation *and* setuptools. At the time my justification was that
pip depended on it. The pip devs have indicated that they could remove
the setuptools dependency when distlib and wheel support are in the
Python standard library.

ISTM however that there is still quite a good justification for
installing setuptools during the bootstrapping, for the reasons you
state.


     Richard


More information about the Distutils-SIG mailing list