权限拒绝错误:Python 3.8在Windows Gitbash上

3

我是Python的新手,在GitBash上运行 python --version 时出现以下错误:...Appdata/Local/Microsoft/WindowsApps/python3: 拒绝访问

根据本论坛上的某些答案,我关闭了Python的应用程序执行别名。这样做会从我的Windows应用程序文件夹中删除两个 "stubs" 文件:python.exe和python3.exe,并导致GitBash上的python --version报错“无此文件或目录”。

作为一个Python新手,卡在安装过程中非常烦人,我错过了什么?

现在已经是十二月份了,我想知道所有这些来自Microsoft的更新是否已经解决了这个问题?


Python的应用程序分发与gitbash不兼容,也不兼容任何基于Cygwin/MSYS的shell,因为Cygwin无法成功地尝试对可执行文件进行状态检查。WindowsApps中的链接是appexec重解析点,在I/O管理器中没有支持。在CreateFile中尝试重新解析它们总是失败的。CreateProcess被设计为通过打开重解析点以读取与应用程序相关的安全属性来处理此故障,然后使用它来创建/模拟一个修改过的令牌,该令牌被允许执行真正的可执行文件。 - Eryk Sun
Windows 可以更好地处理这个问题,允许标准用户查看有关真实可执行文件的元数据,同时限制没有令牌中所需安全属性的执行。目前,Cygwin/MSYS 本身将不得不学习如何更好地处理这种情况。 - Eryk Sun
直到那时,如果您需要使用gitbash,则应使用从python.org下载的常规Python安装,并启用安装程序的选项以更新PATH(如果您不知道如何自行执行此操作)。 (但是,如果您在学习编程语言之前尚未了解基本的操作系统管理知识,则相当于本末倒置。) - Eryk Sun
感谢您的回复,Eryk Sun。虽然我不是编程新手,但对Python和Shell脚本也很陌生。关于您的回复:我在从网站下载并安装最新的3.8版本后检查了Python版本。我之所以参考Windows安装的python.exe是因为在这个论坛上讨论了同样的话题。否则,我的安装是从网站上直接下载的。是的,我认为将我的安装路径添加到PATH变量中是唯一的选择。 - user12589647
3个回答

13
为了解决这个问题,您需要安装所需的Python-Windows版本(在我的情况下是3.9)。 然后,在开始菜单中搜索“编辑帐户的环境变量”。 打开“PATH”变量,并将路径移动到%USERPROFILE%\AppData\Local\Microsoft\WindowsApps下面,即Python安装的路径。

This image shows the edited PATH-Variable

现在您可以在Windows搜索中输入管理应用程序执行别名,然后停用其中的2个python条目。

This image shows the deactivated python*.exe files in Settings -> App execution aliases

你需要做的最后一件事是打开你的Python安装文件夹。这个文件夹通常位于%USERPROFILE%\AppData\Local\Programs\Python\Python39(如果你使用的是Python 3.9)。不要忘记将路径更改为你的Python版本(如Python38)。
复制python.exe文件到同一个目录下并将其重命名为python3.exe。这样你就可以在安装文件夹中同时拥有python.exepython3.exe两个文件。

This image shows the copied python3.exe in the folder of the python installation

你可以在这里找到一个类似的解决方案。


2
哇,这真是一次冒险,但最终它对我起作用了。我正在使用VScode尝试使用git filter-repo,直到我完成这些步骤之前,我都没有成功。谢谢。 - Mark
1
不要复制可执行文件,应该使用 mklink python3.exe python.exe 命令创建符号链接,然后以管理员权限在 命令提示符 中运行该命令。 - CervEd

1
解决方案: 在mintty终端中无法运行Python命令。 可以通过执行“python -i”进入Python模式。 另一个选项是执行“winpty python.exe”。

这个答案比被认可的那个要快很多,尽管你需要输入一个更长的命令。 - Dincio

-3

只需卸载旧版本并安装您刚刚下载的新版本。Git团队已经解决了这个问题,最后一个选项是在安装时勾选它以便与Python和其他程序一起使用。


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