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

Posted

技术标签:

【中文标题】权限被拒绝错误:Windows Gitbash 上的 Python 3.8【英文标题】:Permission Denied error: Python 3.8 on Windows Gitbash 【发布时间】:2020-04-16 15:02:22 【问题描述】:

Python 新手。 在我的 GitBash 上执行 python --version 时出现以下错误。 ...Appdata/Local/Microsoft/WindowsApps/python3:权限被拒绝

根据这个论坛上的一些答案,我关闭了 Python 的应用程序执行别名。这样做会从我的 Windows 应用程序文件夹中删除两个“存根”python.exe 和 python3.exe,并导致另一个错误,即 No such file or directory to my python --version on GitBash。

我是 python 新手,所以卡在安装本身会很烦人。我在这里错过了什么???

现在是 12 月,我认为来自 Microsoft 的所有这些更新仍未解决此问题。还是?

【问题讨论】:

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

要解决此问题,您需要安装所需的 Python-Windows-Version(在我的情况下是 3.9)。 然后在开始菜单中搜索Edit environment variables for your account。 打开 PATH-Variable 并将 PATH 移动到 %USERPROFILE%\AppData\Local\Microsoft\WindowsApps 在 Python 安装路径下。

现在您在 Windows 搜索中输入 manage app execution aliases 并在此处停用 2 个 Python 条目。

您需要做的最后一件事是打开您的 Python-Installation-Folder。 该文件夹通常位于%USERPROFILE%\AppData\Local\Programs\Python\Python39(如果您使用的是 Python 3.9) 不要忘记更改 Python 版本的路径(例如 Python38)。

将文件python.exe复制到同一目录中,并将副本重命名为python3.exe。所以你在安装文件夹中有python.exepython3.exe

这个问题你可以找到类似的解决方案here

【讨论】:

哇,这真是一次冒险,但它确实对我有用。我正在使用 VScode 尝试使用git filter-repo,直到我完成这些步骤,我没有运气。谢谢。 不要复制可执行文件,而是使用mklink python3.exe python.exe 建立符号链接,以管理员权限运行Command Prompt 中的命令【参考方案2】:

已解决: Python 命令不适用于 mintty。 我做了一个 python -i 进入 python 模式 另一种选择是做一个'winpty python.exe'

【讨论】:

这个答案比接受的答案要快得多。即使您必须输入更长的命令。【参考方案3】:

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

【讨论】:

以上是关于权限被拒绝错误:Windows Gitbash 上的 Python 3.8的主要内容,如果未能解决你的问题,请参考以下文章

Windows 上的 Gcloud 命令(使用 git bash)正在记录错误:WindowsApps/python3:权限被拒绝

无法在 Windows 上使用 Git bash 进行 ssh - 权限被拒绝(公钥)

如何在 Windows 上的 git 配置中修复“ssh 权限被拒绝,请重试错误”

挂载文件时获取权限被拒绝错误

Windows上公共git repo的权限被拒绝[重复]

将文件推送到远程时权限被拒绝