似乎一夜之间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,但也没有帮助。还有什么我该看的吗?


当前回答

最简单的方法是修改PATH和PYTHONPATH环境变量,以确保在搜索本地WindowsApp文件夹之前搜索包含适当python二进制文件的文件夹。您可以通过打开控制面板并搜索“env”来访问环境变量。

其他回答

据我所知,这是由最近添加到Windows商店的Python 3.7版本冲突引起的。这看起来像是在%USERPROFILE%\AppData\Local\Microsoft\WindowsApps文件夹中添加了两个名为Python .exe和python3.exe的“存根”,在我的例子中,这是插入到PATH中现有的Python可执行文件条目之前的。

将这个条目移到正确的Python文件夹下面(部分地)纠正了这个问题。

纠正它的第二部分是在Windows搜索提示符中输入管理应用程序执行别名,并完全禁用Python的商店版本。

你可能只需要做第二部分,但在我的系统上,我做了这两个更改,现在一切都恢复正常了。

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

节省时间: 使用WSL和vscode远程扩展来正确地使用python,即使是win10 别忘了virtualenv! 有用的https://linuxize.com/post/how-to-install-visual-studio-code-on-ubuntu-18-04/

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

我也遇到了同样的问题,但除了Python被阻止之外,Scripts文件夹中的所有程序也被阻止了。其他关于别名、path和winpty的答案没有帮助。

我终于发现这是我的反病毒(Avast),因为某些原因,它在一夜之间决定阻止所有编译的python脚本。

幸运的是,修复方法很简单:只需将整个Python目录列入白名单。这里有完整的解释。