[Distutils] The future of invoking pip

Chris Barker chris.barker at noaa.gov
Mon Nov 9 18:24:46 EST 2015


wow! a really long thread here. Trying not to duplicate too much. I am
coming primarily from the perspective of someone that teaches python to
beginners (I'm also a user and package developer, but I, myself, can deal
with any of these options...)

My perspective as a user of pip, but not a developer, is that having the
> command line executable `pip` is much preferable to `python -m pip`. Most
> of the use cases that militate against the command line executable seem to
> be issues that face developers and ultra-power-users (keeping track of many
> versions of pip installed, etc).
>

This is absolutely not true -- the ultra-power-users (am I one of those? --
cool! I need to find a good use for that ultra power!) understand these
complexities and can deal with them.

the real losers ar newbies that have, for one reason or another, multiple
pythons on their system. Both Linux and OS-Z tend to have system installed
pythons, and it is very, very common that a user needs (maybe for a class,
or ...) to install a different one when they are still rank beginners.
Also, people who are new to python coding have very different backgrounds
with the CLI, and manipulating PATH, and all that. so I think the target
user is someone that is new to both python and CLI use, and also has more
than one version of python in their system.

As it happens, I am in the middle of a intro class that's using python3.4
or 3.5 right now -- and I am telling everyone to do:

python3 -m pip install

Yes, plain old "pip install" is nicer, but only a little bit, and the
biggest reason we really, really want that to still work is that there are
a LOT of instructions all over the web telling people to do that -- so
really too bad if it doesn't work! But the reality is that it often DOESN'T
work now! and when it doesn't newbies really have no idea why in the heck
not!

personally, I think the best approach is to deprecate plain old "pip
install" -- if it's not there as an option, I expect no one will find it
odd that to install something for python, you might use python to do that!

which brings up an idea -- to make it clean, why not really integrate
"ensurepip" into python:

python --install some_package

It will take a long time to propagate through the versions and installs,
but doesn't it make sense that the officially supported package installer
actually be invoked directly from python?

But many casual users, I think, just have one version of python/pip
> installed, and benefit from having the easy-to-call executable.
>

I suppose it's not so bad that in the case of one python, that pip install
just works.

They're also the least capable of adding new script wrappers and bash
> aliases.
>

absolutely --- that should inly be required for us "ultra-power-users" :-)

glyph wrote:


> Rather than trying to figure out what the "right" way for users to invoke
> `pip´ to begin with is, why not just have Pip start providing more
> *information* about potential problems when you invoke it?
>

This is a great idea! we will be stuck with users expecting "pip install"
to work for a long time. If they at least get a helpful hint that something
weird is going on -- that would help a lot. And this wourl require only
changes to pip itself, no changes to documentation the world over.

We should do this in the interim, regardless of other paths forward.

I've lost track of the technical details on the option to have a
self-contained pip executable -- so no comment there.

-Chris


-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20151109/8ba75f60/attachment.html>


More information about the Distutils-SIG mailing list