[Python-Dev] PEP 453 (pip bootstrapping) ready for pronouncement?

Paul Moore p.f.moore at gmail.com
Fri Sep 27 16:26:41 CEST 2013


On 27 September 2013 15:08, Stephen J. Turnbull <stephen at xemacs.org> wrote:
>> New users on Windows and Mac OS X. I've heard many more complaints
>  > from folks running tutorials about the pip bootstrapping process than
>  > I ever have from the community at large about the GIL :P
>
> I bet those users are *not* running third-party distros, but rather
> are sitting in front of pretty close to plain vanilla factory installs
> of the OS, no?  And "new users" on Mac OS X already have "old installs"
> of Python, no?

Windows users who don't use a third-party distro like Enthought,
generally download the python.org installer. At the moment, that
doesn't give them a "pip" command. So if they want to install any
third party package, they have to start by installing pip. The
instructions for that are reasonably clear, but non-trivial, largely
because tools like curl are not commonly available on Windows, and by
default running a Python script may not do what you expect.

Rather than try to fix these problems (which are *hard*) the intent is
to have the pip command installed by the python.org installer.

So, for Windows users, installing a package becomes "pip install XXX".

The problem is that this doesn't work for existing releases (2.7 and
3.3). Rather than have a convoluted set of instructions that goes "if
you're not on Python 3.4+, (basically do what we have at the moment)"
the PEP makes it possible to say "If you have a Python older than 3.4,
upgrade to the latest maintenance release of your version of Python,
then use pip". People who have reasons not to use the latest
*maintenance* release are assumed to be special cases who can either
deal with the more complex current process, or can work something out
for themselves. (They may not be, but there's not much we can do in
practice to help them).

Nobody in the basic target group should be running ensurepip (under
any name) manually.

I can't speak for Linux distros or OSX users, but for Windows I do
believe that this is a significant improvement, and worth the (IMO,
negligible) risk involved in adding this to a maintenance release.
There *may* be some mileage in a debate about why we don't just bundle
pip in the installer, rather than having helpers in core Python
itself, but the long & short of it is that ensurepip is needed for
3.4+ to make installing pip in venvs work by default, and why have a
completely different and so less well tested mechanism for older
versions?

Paul.


More information about the Python-Dev mailing list