The only real option is to get the alias entirely removed, and so users will go back to getting “Command not found” errors. For reference, about 30,000 people daily would get that error (charts below), and about 1/3 of those are choosing to install, which is a very high conversion rate. So that’s a lot of real Python users who would revert to complete failure with only the top Google result to help them. I personally don’t want to be responsible for causing that many failures.
I can’t share specific numbers, but the vast vast VAST majority of Python-related issues reported in Visual Studio are due to the python.org installer being run. The reliability is just too low, and Microsoft knows it, and so it won’t be recommended anywhere automatically. A link to python.org in docs is probably the best we’d get.
Replacing the installer with something more reliable is the point of the Store install. It’s the newer installer technology that is supported, reliable, and efficient. If we don’t use it, we write something entirely from scratch, and deal with the many many issues afflicting installers ourselves. I’m not signing myself up for that, but if we get a serious (10 year maintainer) offer from someone willing to do it, we can consider it.
We could distribute the more modern ourselves from python.org if we wanted, instead of just the Store, but frankly the compatibility issues with existing libraries are why we don’t. We need some option for people who need a fallback, and it’s taken a while for enough of the common libraries to catch up. I personally haven’t encountered any code that doesn’t work with the Store install in a couple of years, but I see enough angst about it that I’d rather not make it the default. A managed install as I’m proposing here wouldn’t have those technical issues, it’d just have security/reliability risks instead (e.g. upgrades would probably have to go back to being clean installs, and there’s no way to prevent users irreversibly breaking their own runtime or the ability to repair it).
All of this stuff matters way more for the 95-99% of users who aren’t on here to present their position than it does for anyone involved in this forum - we are literally the Python experts, and can handle stuff like portable installs and global site-packages without wondering why everything just broke. Most users are not going to cope well with these things happening, and most of those users are on Windows, so I feel a real responsibility to make sure Python works well for them and continues working no matter what they inadvertently try to do to it. Which to me, means:
- don’t give them the python.org installer
- don’t blindly modify their
PATH
- don’t make them choose a Python version (until they know they need to)
- don’t make them need administrator privileges
- give them safe in-place updates, preferably automatic
- give them a big “Repair” button that works
- give them a big “Remove” button that works
- give enterprises the ability to approve our installs/builds
The “Windows” campaign ID is only from the built-in redirector. It makes up about 70% of all traffic for Python 3.12 (where it’s currently pointing).