This has gotten to be a big thread, and it's a pretty intractable problem, but I think there are a few fairly small things that could be done to at least make it a bit easier:
1) Add python2.exe and python3.exe files to the Windows installers -- am I insane or did Windows used to have that? I really think it did -- maybe got removed when py.exe was added.
1a) alternatively, we could add a "py" executable to the standard linux builds, so there would be THAT one way to do it. But I think that's a "BAD IDEA" -- the whole "py" thing is not widely know or used, it's not going to show up in package install instructions for a LONG time, (actualy we could do both anyway)
Then "python2 -m pip install" would work everywhere (only with new installations, but at least with newbies, that's a bit more likely ...)
2) Make adding to the PATH in Windows the default. I think there are really three user groups:
- newbies starting from scratch -- they want it on the PATH
- newbies with whatever left over cruft from previous installations on their systems -- they want it at the FRONT of their PATH. They SHOULD uninstall all the cruft, but if they don't this will still work with as few surprises a possible.
- not-newbies with a previous version of python they need to continue using. They can uncheck the box, or use py.exe
3) Make --user be be automatic for pip install. Not actually the default, but pip could do a user install if you don't have the permissions for a non-user install.
This means folks might accidentally install in user mode because they forgot to type sudo -- but that would be a mostly-sysadmin/sophisticated user problem. And maybe have an environment variable of configuration key for "prefer admin install". If tha was set, pip would only install in user mode if specifically asked to. I'm can't imagine a case where a user would have admin permissions, but want a user install (except people following bad practices!)
Except for the pip change, these would be easy to implement and backward compatible. So why not?
NOTE: even if nothing changes with any of this we need to get py.exe better documented and advertised -- it doesn't show up in:
In fact, I knew about py.exe (from this discussion), and was writing up notes about how to run a Python file (without access to a Windows box) , and it took a LONG time to find ANY documentation of it (adding "py" to a google search about something python does not get far...).
We can do that better, but frankly this may be a lesson on why we can't rely on anything "new" to help solve this problem, when maybe we could make the "old way" work better and more cross platform.