似乎一夜之间Windows 10的更新破坏了Python。只是试图运行python——version返回一个“Permission Denied”错误。三个更新都没有;KB4507453、KB4506991或KB4509096似乎是罪魁祸首,但出现问题的时间令人怀疑。与其搞砸回滚,我希望有一个我错过的更简单的解决方法。

python的权限是“-rwxr-xr-x”,除了让Windows更新在安装昨晚的补丁后重新启动机器外,我没有改变任何东西。

根据系统信息,我正在运行10.0.18362

还应该注意,无论我(尝试)从git-bash执行Python使用“作为管理员运行”或不,如果我尝试使用PowerShell,它只是打开Windows商店,好像应用程序没有安装,所以我认为它不能看到我的/c/Users/david/AppData/Local/Microsoft/WindowsApps/文件夹的内容。

我还尝试重新安装Python 3.7.4,但也没有帮助。还有什么我该看的吗?


当前回答

这个问题太常见了,不可能一直存在。大多数答案和说明都未能解决这个问题。下面是在Windows 10上可以做的事情:

Type environment variables in the start search bar, and open Edit the System Environment Variables. Click Environment Variables... In the System Variables section, locate the variable with the key Path and double click it. Look for paths pointing to python files. Likely there are none. If there are, select and delete them. Create a new variable set to the path to your python executable. Normally this is C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Python38. Ensure this by checking via your File Explorer. Note: If you can't see AppData, it's because you've not enabled viewing of hidden items: click the View tab and tick the Hidden Items checkbox. Create another variable pointing to the Scripts directory. Typically it is C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Scripts. Restart your terminal and try typing py, python, python3, or python.exe.

其他回答

在WindowsApps解决问题之前添加本地Python路径。

确保C:\Python39\和C:\Python39\Scripts\被添加到系统路径变量和用户路径变量中

这似乎是git-bash的一个限制。使用winpty python.exe的建议对我有用。有关其他信息,请参阅git bash命令行中的Python不工作。

这是由于Windows应用程序执行别名在Git-Bash中的工作方式。

这是MSYS2中一个已知的问题,无法通过IO_REPARSE_TAG_APPEXECLINK访问Windows重解析点

作为一种变通方法,您可以为在底层使用cmd.exe的函数调用命名别名。

将以下内容添加到~/。bashrc文件(::

function python { cmd.exe /c "python $1 $2 $3";}

对于python,我建议关闭应用程序执行别名,就像接受的答案一样,但对于像winget这样专门通过windows商店分发的库,这是最好的选择。

进一步的阅读

bash: Local/Microsoft/WindowsApps/python3: Permission denied . sh 从bash运行时拒绝权限 由于exec格式错误#234,winget无法在WSL2中运行

这个问题太常见了,不可能一直存在。大多数答案和说明都未能解决这个问题。下面是在Windows 10上可以做的事情:

Type environment variables in the start search bar, and open Edit the System Environment Variables. Click Environment Variables... In the System Variables section, locate the variable with the key Path and double click it. Look for paths pointing to python files. Likely there are none. If there are, select and delete them. Create a new variable set to the path to your python executable. Normally this is C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Python38. Ensure this by checking via your File Explorer. Note: If you can't see AppData, it's because you've not enabled viewing of hidden items: click the View tab and tick the Hidden Items checkbox. Create another variable pointing to the Scripts directory. Typically it is C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Scripts. Restart your terminal and try typing py, python, python3, or python.exe.