Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
190 views
in Technique[技术] by (71.8m points)

CMD opens window store when I type python

Today when I tried to run a simple code on Sublime Text 3, the following message appeared:

Python was not found but can be installed from the Microsoft Store: https://go.microsoft.com/fwlink?linkID=2082640

And when I type Python in CMD, it opens the Windows Store for me to download Python 3.7. This problem started today for no good reason, I didn't change or downloaded anything about Python and already tried reinstalling Python, and the Path is correct.

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Use the Windows search bar to find "Manage app execution aliases". There should be two aliases for python, unselect them, this will allow the usual python aliases "python" and "python3". See image below.

enter image description here

I think we have this problem when installing python because in a new Windows installation the aliases are in the ON position as in image below. When turned on, Windows puts a empty or fake file named python.exe and python3.exe in the directory named %USERPROFILE%AppDataLocalMicrosoftWindowsApps. This is the alias.

enter image description here

Then Microsoft put that directory at the top of the list in the "Path" environment variables.

enter image description here

When you enter "python" in cmd, it searches the directories listed in your "Path" environment variables page from top to bottom. So if you installed Python after a new Windows 10 install then get redirected to the Windows Store it's because there are two python.exe's, the alias in the App Execution Alias page, and the real one wherever you installed Python but cmd finds the App execution alias python.exe first because that directory is at the top of the Path.

I think the easiest solution is to just check the python.exe and python3.exe to OFF as I suggested before, which deletes the fake exe's. Based on this Microsoft Devblog https://devblogs.microsoft.com/python/python-in-the-windows-10-may-2019-update/ they stated they created this system partially for new python users specifically kids learning python in school that had trouble installing it. Creating this alias was to helps kids just starting python install it and focus on learning to code. I think Windows probably deletes those aliases if you install Python from the Windows App Store. What we are noticing is that they do not get deleted if you manually install from another source.

(Also the empty/fake python.exe is not really empty it says 0 KB in the screenshot but entering "start ms-windows-store:" in cmd opens the Windows App Store so it probably just has a line with that and a way to direct it to Python page.)

Finally, as Chipjust suggested you can create a new alias for python using something like DOSKEY as explained in this article for example: https://winaero.com/how-to-set-aliases-for-the-command-prompt-in-windows/


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...