The uninstall problem is actually that "python" would stop working completely in that case, and it's not necessarily obvious why or how to fix it.
The leave-behind problem doesn't really matter as the directory is not searched if it doesn't exist, but we also don't leave behind entries added by the installer. A user who customizes their own PATH will obviously need to manually remove the entry, but that's a manual action both times so I don't see any concern there.
At one point I was trying to convince the Windows team to add a global "python" command to all Windows installs (probably 10 and later - we don't backport stuff like this, but it could be a manual install) that would act like the py.exe launcher but also automatically download Python if you didn't have it. What would people think if I got that to happen?
Top-posted from my Windows Phone
-----Original Message----- From: "Andrew Barnert" firstname.lastname@example.org Sent: 3/16/2016 8:30 To: "Steve Dower" email@example.com Cc: "firstname.lastname@example.org" email@example.com Subject: Re: [Python-ideas] Make py.exe default to Python 3
On Mar 15, 2016, at 13:58, Steve Dower firstname.lastname@example.org wrote:
On 15Mar2016 1231, Random832 wrote: I think what might be most appropriate would be to have a "Python Console" in the start menu (alongside the IDLE entry) which sources a bat file to add the correct python version (and the scripts directory for pip and easy_install) to that window's PATH, rather than installing it in the global PATH, and users can learn to start the console from that icon when they want to run python commands. Inspired by the fact that e.g. Visual Studio has something that does the same.
This is one of two solutions I'd be comfortable with.
The other is to rename "py[w].exe" as "python[w].exe".
PATH is used to resolve system DLLs and common commands. Over time, better security features are being added for core system components, but it is still possible to hijack programs this way.
But isn't the whole point here that we want novices to be able to treat python and/or python3 as a "common command", just like py?
That implies either putting the executable in an existing PATH directory, or adding the executable's directory to the PATH (or, of course, renaming py, as you suggest, since that already gets put into an existing directory).
It also has a serious conflict problem once the second version of Python is installed with this option enabled, in that *anything* currently referring to just "python" will change.
If this is only intended for rank beginners, what about just disabling the checkbox, with a warning, if there's already a program named "Python" anywhere on the PATH? Then, when someone gets into trouble because they're installing two Pythons, they'll get a warning and be able to ask their teacher or search StackOverflow or whatever and get a quick answer. And that means we don't have to solve the conflict problems, the uninstall leave-behind problems, etc. for multiple pythons.