On Apr 27, 2017, at 11:08 AM, Barry Warsaw <barry@python.org> wrote:

Also note that `pip install` defaults to --user in Debian, and that alleviates
a lot of the "well that didn't work, let me add sudo" urges.  Upstream, this
bug tracks that, although it's long standing without much recent progress:

https://github.com/pypa/pip/issues/1668

IMHO, that's the right direction to go, and I think Donald is philosophically
aligned (apologies if I'm misreading that, DS!).  There are of course plenty
of knock-on issues to work out, which is probably why that issue is still
open.


I think solving this problem (to the degree it can be solved) relies on a multifaceted solution.

One part is certainly defaulting to —user in upstream where it makes sense to do so, so that people are not incentivized by a permission error by default to just throw a sudo in front of their command to make it work.

I think the other part is recognizing that there are valid use cases for ``sudo pip install`` (just like there are for doing ``sudo make install``) and striving to make that function as best we can. The two things I think need done for that are to standardize the “vendor” vs “local” split for site-packages that Debian has, so that the two different sources of a package are not fighting over dropping files into the same directory. The other thing I think that needs to get done is for pip to get better at the concept of overlaying installs on sys.path. We shouldn’t need to uninstall something in the “Vendor site-packages” in order to install it into the “local site-packages” (And similarly for user site-packages).


Donald Stufft