On 9/26/2014 1:03 PM, Chris Barker wrote:
On Thu, Sep 25, 2014 at 5:38 PM, Donald Stufft <donald@stufft.io <mailto:donald@stufft.io>> wrote:
2) Switch to —user based on if the user has permission to write to the site-packages or not.
ouch -- no. Why not a clear error message if pip can't write to site-packages -- something like:
I fairly strongly believe that the current default is doing a great disservice to users. I believe that for *most* people --user is the correct option for them to be using and the fact that it's not the default and requires opt in is a historical artifact more than anything else.
OK -- fine -- I think that history may be important -- at least for Py2, but I agree that --user is a better default.
But what I'm objecting to is is switching the install mode based on the permissions that the user happens to be running with at the time.
None of us should be routinely running as admin. So what I do (and I image a LOT of people do) is try to do whatever I need to do, and only if I get an error to I switch to admin mode (or add sudo, or ???). What I'm suggesting is that folks that simply expect stuff to get installed into the usual system python is not thinking ahead of time "oh, I need be admin for this", but rather, simply do it, and then, if you get a permission error, make the switch to either admin in mode, or add --user.
If we do switch the default to --user, then this issue goes away.
In short -- too much magic is bad.
Pip on Windows should act like a normal Windows program. If I install Python for all users, I expect pipped packages to be installed for all users too, unless I specify otherwise. If installation (for all users) requires admin privileges, I expect a UAC box to pop up and ask for the admin password. This is pretty routine, at least with Win7. Most every program I install does this either on installation or on first running. Some Windows operations also pop up a box. There are only a few things that require that I actually login as an admin user. -- Terry Jan Reedy