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


当前回答

研究

%USERPROFILE%\AppData\Local\Microsoft\WindowsApps中的所有文件都是占位符,它们指向的文件实际上位于C:\Program Files\ WindowsApps中的某个位置,而该位置的权限恰好完全被拒绝。

看来我在这个问题的副本中所做的陈述是正确的:

“似乎他们并没有真正考虑到分发方法会影响权限!”

无法在Windows上的Git Bash中安装pylint (Windows Store)

由于WindowsApps的分发方法,权限被搞砸了:

有趣的是,它说“用户”组可以读取和执行文件,以及我的特定用户,但管理员组只能列出文件夹内容,这是出于一些可笑的无法理解的原因。当尝试在文件资源管理器中访问文件夹时,它甚至拒绝显示文件夹内容,所以这也有一些可疑的地方。

有趣的是,尽管在CMD中执行python工作正常,但“WindowsApps”文件夹在列出其所在目录中的文件时不会显示,并且试图导航到该文件夹会生成“权限被拒绝”错误:

尝试更改权限需要首先更改所有者,因此我将所有者更改为Administrators组。在那之后,我试图改变管理员组的权限,以包括完全控制,但它无法改变这一点,因为“访问被拒绝”(duh, Micro$ucks,这就是我们试图改变的!)

这个权限错误发生在很多文件上,我用Alt+C在重复消息上快速点击“继续”,但这仍然花费了太长时间,所以我取消了这个过程,导致弹出以下警告消息:

现在我无法将TrustedInstaller用户设置为WindowsApps文件夹的所有者,因为它没有显示在用户/组/内置安全原则/其他对象的列表中。*

*实际上,根据本教程,您可以通过在对象名称文本框中输入NT Service\TrustedInstaller将所有者切换回TrustedInstaller。

解决方案

没有解决办法。基本上,我们完全完蛋了。漂亮的举动,微软。

其他回答

在环境变量中添加python文件夹的路径,就可以工作了

1.搜索环境变量

2.寻找系统变量section,并在其中找到名为path的变量

3.双击path并添加指向python文件夹的新路径,就是这样。

python文件夹通常在 C: \用户(“用户名”)\ AppData \本地Python \程序\ \ Python39

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

研究

%USERPROFILE%\AppData\Local\Microsoft\WindowsApps中的所有文件都是占位符,它们指向的文件实际上位于C:\Program Files\ WindowsApps中的某个位置,而该位置的权限恰好完全被拒绝。

看来我在这个问题的副本中所做的陈述是正确的:

“似乎他们并没有真正考虑到分发方法会影响权限!”

无法在Windows上的Git Bash中安装pylint (Windows Store)

由于WindowsApps的分发方法,权限被搞砸了:

有趣的是,它说“用户”组可以读取和执行文件,以及我的特定用户,但管理员组只能列出文件夹内容,这是出于一些可笑的无法理解的原因。当尝试在文件资源管理器中访问文件夹时,它甚至拒绝显示文件夹内容,所以这也有一些可疑的地方。

有趣的是,尽管在CMD中执行python工作正常,但“WindowsApps”文件夹在列出其所在目录中的文件时不会显示,并且试图导航到该文件夹会生成“权限被拒绝”错误:

尝试更改权限需要首先更改所有者,因此我将所有者更改为Administrators组。在那之后,我试图改变管理员组的权限,以包括完全控制,但它无法改变这一点,因为“访问被拒绝”(duh, Micro$ucks,这就是我们试图改变的!)

这个权限错误发生在很多文件上,我用Alt+C在重复消息上快速点击“继续”,但这仍然花费了太长时间,所以我取消了这个过程,导致弹出以下警告消息:

现在我无法将TrustedInstaller用户设置为WindowsApps文件夹的所有者,因为它没有显示在用户/组/内置安全原则/其他对象的列表中。*

*实际上,根据本教程,您可以通过在对象名称文本框中输入NT Service\TrustedInstaller将所有者切换回TrustedInstaller。

解决方案

没有解决办法。基本上,我们完全完蛋了。漂亮的举动,微软。

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

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