最近在安装 Python 的时候发生了很奇怪的现象(安装前):从命令行执行 python 并不会输出python版本信息,似乎也没有其他反应,也无报错(不提示“不是内部或外部命令,也不是可运行的程序”),再次输入命令 where python显示C:\Users\quxw\AppData\Local\Microsoft\WindowsApps\python.exe,如下图:
看这个路径猜测在微软的WindowsApps里已经内置了python,再次输入:python.exe,如下图:
会弹出微软的商店窗口。那么问题来了,Windows 搞这些没有实际环境的 .exe 出来,用意何在,想要安装python的用户,还以为曾经安装过了。带着这个疑惑,从网上找到一些信息,原来从 Windows 10 2019 五月更新以来,微软试图把 Python 带到 Windows,至于具体做法,则是把 Python3 放到了自家的商店里面。而上面看到的 python.exe 是一个“假的” Python,它的唯一作用在于当系统没有找到 Python 的时候,自动跳转到微软商店去让我们下载。
以下是微软团队给出的说法:Who put Python in the Windows 10 May 2019 Update?
接下来,直接在windows搜索框输入 app exec,这样会打开设置的“管理应用执行别名”界面(我的是windows11)。这里我们会看到系统认为 python.exe 和 python3.exe 都只是安装程序的别称,不过我们也可以选择把它们关闭。这样当我们再运行 python 的时候,就会显示“找不到程序”的标准提示。实际上,Windows 是把上述 .exe 文件偷偷备份到其他地方了。
直接点击我们这个“管理应用执行别名”,会打开如下图窗口,最底部有两个python的exe执行文件关掉。
关闭后再cmd再执行python就不一样了,会提示:'python' 不是内部或外部命令,也不是可运行的程序或批处理文件。如下图:(前后对比两个输出结果)
很多程序员(包括我)很可能都是按照标准的方式从官方下载安装 Python 执行文件。比较细心的会在安装之前执行一下python,因此我也就发现了上面这些疑惑(怎么没安装也不报错,还不能执行)。接着如果在安装过程中选择了“添加到系统环境变量”的话,那么标准 Python 会注册到系统 PATH 变量,而前面所述的 WindowsApps 目录则是 Windows 添加到用户 PATH 变量的。按照 Windows 系统的规则,PATH 环境变量是系统设置先于用户设置,所以如果安装了标准版 Python 的话,系统应该首先找到的是它,而不是应用商店版的 Python。也就是说,只要安装了官方的python,就不会出现我上述的问题:输入python无任何反应。所以有时候太过于细心,也是有收获的,知道微软有这个内置的个性化设置。
引文:Win 10 中使用 Python 碰到的奇怪现象_win (sohu.com)
标签:Python,微软,提示,Windows,python,exe,报错,安装 From: https://www.cnblogs.com/wekenyblog/p/17502141.html