[Distutils] The future of invoking pip

Ben Finney ben+python at benfinney.id.au
Thu Nov 5 21:21:43 EST 2015

Donald Stufft <donald at stufft.io> writes:

> On November 5, 2015 at 8:04:41 PM, Robert Collins (robertc at robertcollins.net) wrote:
> > cat > /usr/bin/pip << EOF
> > python -m pip $@
> > EOF
> >  
> > Seriously - isn't the above entirely sufficient?
> It’s not particularly hard to do this (we could even make a pip-cli
> package on PyPI that did it). It’s just one more step and one more
> “weird” thing for newcomers.

You seem to be saying that, for a newcomer wanting to invoke Pip, that
the command ‘pip’ is weird, but that the command ‘python -m pip’ is less

If so, I think you have lost touch with Python newcomers's perspective.

If not, I don't know what you mean by a simple ‘pip’ command being “one
more “weird” thing for newcomers”.

On the contrary, it is ‘python -m pip’ that is weird to a newcomer, and
*that* is why I am aghast at the insistent push toward it.

In order to be friendly to newcomers, and friendly to people who use
more than just Python, the Python tools should not have UIs that assume
they are the centre of everything.

The ‘python -m foo’ syntax is a peculiarity of Python, is not at all
intuitive for anyone already familiar with their operating system nor
with other languages.

The push away from simple command executables and toward the bizarre
‘python -m foo’ is a wart that needs to be minimised, not encouraged.

Instead, the tools should go to considerable effort to *work with* the
operating system in which they find themselves, and that includes having
a UI that works like other tools.

In this case: if the user wants to use “pip”, then the command to invoke
should not be ‘python -m pip’ but instead should be ‘pip’.

 \       “I have always wished for my computer to be as easy to use as |
  `\       my telephone; my wish has come true because I can no longer |
_o__)          figure out how to use my telephone.” —Bjarne Stroustrup |
Ben Finney

More information about the Distutils-SIG mailing list