尝试在Windows 10上运行Python时出现“权限被拒绝”错误。

211
似乎Windows 10的一次更新破坏了Python。仅仅尝试运行python --version就返回“拒绝访问”的错误。三个更新中的任何一个(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,但那也没有帮助。我应该再看些什么?

顺便提一下,“Python上的权限为'-rwxr-xr-x'”在Windows中可能没有意义。这是由类Unix环境(如MSYS2或git-bash)报告的虚假信息。 - Eryk Sun
不是的。这是来自python.org的Python软件包。它已经工作了多年,没有任何问题,但最近的Windows补丁导致了一些问题。 - notanumber
你找到解决方案了吗?我也遇到了同样的问题。 - Shanks
很遗憾,不行。我大部分的工作都在Docker中完成,所以我一直忍受着这个问题。如果我有了发现,我会确保发布出来! - notanumber
谢谢!如果我弄清楚了,我会在这里放一个。 - Shanks
显示剩余2条评论
20个回答

3
这是由于Windows中Git-Bash的应用执行别名(App Execution Aliases)的工作方式造成的。
在MSYS2中已知存在问题,无法使用IO_REPARSE_TAG_APPEXECLINK访问Windows的重新解析点。
作为一种解决方法,您可以将别名设置为使用cmd.exe的函数调用。
请将以下内容添加到您的~/.bashrc文件中:
function python { cmd.exe /c "python $1 $2 $3";}

对于Python,我建议像接受的答案那样切换应用程序执行别名,但对于仅通过Windows商店分发的库(如winget),这是您最好的选择。

进一步阅读


1

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


这帮助我成功运行了Python,尽管Python已经安装在C:\Program Files\Python36\。请确保将其添加到您的PATH顶部(开头),否则Windows可能会尝试运行您安装的Python版本而非Windows Store版本。此外,我从未在git bash中使其工作,但它可以在cmd或powershell中工作。 - trex

1
我需要运行/执行这个代码,但是它没有起作用。
python3 -m http.server 8080

在尝试了上述一些解决方案并且没有起作用之后,对我有用的是

python -m http.server 8080

1
运行-m venv时,它对我有效。看起来我可能已经在两个位置安装了Python3,一个是从Windows商店安装的,另一个可能是由VSCode或类似应用程序安装的。 $ which python /c/Users/me/AppData/Local/Programs/Python/Python39/python $ which python3 /c/Users/me/AppData/Local/Microsoft/WindowsApps/python3 - Josiah

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

0
我刚刚在Windows应用程序和功能中卸载了Python 3.9版本。 相反,我安装了最新版本,并添加了环境变量。
这对我有直接帮助。

0

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

最后,我发现是我的杀毒软件(Avast)在一夜之间出于某种原因决定阻止所有编译后的Python脚本。

修复方法很简单:只需将整个Python目录添加到白名单中。详细解释请参见这里


0

将Python文件夹的路径添加到环境变量中,它就可以工作了。

1.搜索环境变量

2.查找系统变量部分,在其中找到名为“path”的变量

3.双击路径并添加新路径,该路径指向Python文件夹,就这样。

Python文件夹通常位于 C:\ Users [“用户名”] \ AppData \ Local \ Programs \ Python \ Python39


-1

-1

在Windows 10中

  • 打开控制面板
  • 点击系统
  • 点击高级系统设置链接
  • 点击环境变量按钮
  • 在系统变量部分找到PATH环境变量并选择它
  • 点击编辑(如果PATH环境变量不存在,则点击新建)
  • 在编辑环境变量窗口中指定PATH环境变量的值
  • 点击确定
  • 通过点击确定关闭所有剩余的窗口
  • 重新打开命令提示符窗口并运行python --version

-2

也许你可以尝试以管理员权限打开命令提示符(以管理员身份运行)。这对我大多数情况下都有效。


3
Python可执行文件在CMD中即使没有管理员权限也可以工作。问题是,在程序员的必备工具之一——Git Bash中它不起作用,这是默认工具。而且它在Python的其他发行方式中都能工作,这意味着它应该(被制作成)也能在这里工作。 - Ryan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接