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 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