【问题标题】:git.exc.GitCommandNotFound: [WinError 5] Access is deniedgit.exc.GitCommandNotFound: [WinError 5] 访问被拒绝
【发布时间】:2016-11-06 20:53:50
【问题描述】:

我正在学习 Python。

尝试克隆存储库时遇到异常

    Traceback (most recent call last):
      File "C:\Users\Selvakumar\AppData\Local\Programs\Python\Python36-32\lib\site-packages\git\cmd.py", line 622, in execute
        **subprocess_kwargs
      File "C:\Users\Selvakumar\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 969, in __init__
        restore_signals, start_new_session)
      File "C:\Users\Selvakumar\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 1249, in _execute_child
        startupinfo)
    PermissionError: [WinError 5] Access is denied

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "config_console.py", line 2185, in <module>
        command_line = ConfigCommandLine()
      File "config_console.py", line 87, in __init__
        g.clone('git@github.com:Modria/Ecomm_GM.git')
      File "C:\Users\Selvakumar\AppData\Local\Programs\Python\Python36-32\lib\site-packages\git\cmd.py", line 463, in <lambda>
        return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
      File "C:\Users\Selvakumar\AppData\Local\Programs\Python\Python36-32\lib\site-packages\git\cmd.py", line 905, in _call_process
        return self.execute(make_call(), **_kwargs)
      File "C:\Users\Selvakumar\AppData\Local\Programs\Python\Python36-32\lib\site-packages\git\cmd.py", line 625, in execute
        raise GitCommandNotFound(str(err))
    git.exc.GitCommandNotFound: [WinError 5] Access is denied

GitPython 已安装。 ssh 密钥在 C:\Users\Selvakumar.ssh 中可用,当我从 git bash 克隆时它可以工作。但同样不适用于python。请注意,生成 ssh 密钥时没有密码。请帮我解决它

【问题讨论】:

  • 你能确保你的python程序在HOME设置为USERPROFILE的环境中运行吗?设置HOME=%USERPROFILE%;调用你的 python 程序(来自一个规则 CMD 会话,而不是一个 git bash)。
  • 遇到同样的错误。我在环境变量中设置 HOME 并从 CMD 运行(我已经这样做了)
  • 你的 PATH 是否引用了 git 二进制文件?
  • 是的,那是我犯的错误。我错过了 GIT_PYTHON_GIT_EXECUTABLE 路径变量中的 git.exe。像这样的 asC:\Program Files (x86)\Git\bin\git.exe 和作品
  • 太棒了!我已经添加了一个答案来记录。

标签: python git ssh


【解决方案1】:

OP 确认这是一个 PATH/变量问题

您的 PATH 是否引用了 git 二进制文件?

是的,那是我犯的错误。我错过了 GIT_PYTHON_GIT_EXECUTABLE 路径变量中的 git.exe
C:\Program Files (x86)\Git\bin\git.exe 这样给出,它可以工作。

可以看到引入的变量here in GitPython 26

如果设置,它应该包含 git 可执行文件的完整路径,例如c:\Program Files (x86)\Git\bin\git.exe 在 Windows 上或 /usr/bin/git 在 Linux 上。

GitPyhton README 声明:

GitPython 需要在系统上安装 git 可执行文件,并在您的PATH 中提供大多数操作。
如果它不在你的PATH 中,你可以通过设置GIT_PYTHON_GIT_EXECUTABLE=&lt;path/to/git&gt; 环境变量来帮助GitPython 找到它。

【讨论】:

    【解决方案2】:

    好像是权限错误,请务必以管理员身份运行您的脚本

    【讨论】:

    • 我也试过了。它不起作用。顺便说一句,如果我以管理员身份运行,它在哪里寻找 SSH 密钥
    猜你喜欢
    • 2018-02-10
    • 2020-05-03
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多