[Distutils] PEP 439 and pip bootstrap updated

Brett Cannon brett at python.org
Wed Jul 10 16:28:12 CEST 2013

On Wed, Jul 10, 2013 at 9:43 AM, Paul Moore <p.f.moore at gmail.com> wrote:

> On 10 July 2013 13:46, Brett Cannon <brett at python.org> wrote:
>> pip (or pip3 for Python 3.3/3.2)
> Sorry to butt in here, but can I just catch this point. There seems to be
> an ongoing series of assumptions over whether the bootstrap is called pip
> or pip3. The pep actually says the bootstrap will be called pip3, but I'm
> not happy with that - specifically because the *existing* pip is not called
> pip3.
> So, at present, if I (as a 100% Python 3 user) want to install a package,
> I type "pip install XXX". No version suffix. In the same way, to invoke
> Python, I type "py" (I'm on Windows here) or if I want the currently active
> virtualenv, "python".

But you should be typing python3 here, not python (and PEP 394 is trying to
get people to start using python2 as the name to invoke).

> I would find it distinctly irritating if in Python 3.4 I have to type
> "pip3 bootstrap" to bootstrap pip - and even worse if *after* the bootstrap
> the command I use is still "pip". (And no, there is currently no "pip3"
> command installed by pip, and even if there were, I would not want to use
> it, I'm happy with the unsuffixed version).
As Donald pointed out, you would always use pip3. The bootstrapping aspect
is a behind-the-scenes thing; just consider the script as "launch pip if
installed, else, bootstrap it in and then launch it".

> I appreciate that Unix users have different compatibility priorities here,
> but can I propose that on Windows at least, the bootstrap command is "pip"
> and that matches the "core" pip that will be downloaded?
There won't be a difference in command-line usage.

> Oh - and one other thing, on Windows python is often not on the system
> PATH - that's what the py.exe launcher is for. So where will the pip
> bootstrap command be installed, and where will it install the real pip?

Covered in the PEP: it will go into the user installation location as if
--user had been specified.

>  And also, will the venv code be modified to install the pip bootstrap in
> the venv's Scripts directory?

In the PEP: goes into the venv.

> Does virtualenv need to change to do the same? What if pip has already
> been bootstrapped in the system Python?

Then nothing special happens; the script just executes pip instead of
triggering a bootstrap first.

>  Maybe I need to properly review the PEP rather than just throwing out
> random thoughts :-)

I feel like I just fed a bad habit. =)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20130710/58774827/attachment.html>

More information about the Distutils-SIG mailing list