使用 gitpython 找不到 git 可执行文件:“错误的 git 可执行文件。”

问题描述 投票:0回答:11

我试图使用访问密钥克隆 git 存储库,但是当我尝试运行它时,它会抛出异常,提示找不到 Git 可执行文件。

但是我已经安装了 Git,并且 in_it.py 显示了正确的路径“C:\Program Files\Git in”。另外,我已经安装了 gitpython 来使用 python 中的库。

这是我的代码:

import git

git.Git("D:/madhav/myrep/").clone("@github.com:myrepo/scripts")

========== 并且抛出以下异常================

Traceback (most recent call last):   
File "C:\Users\1096506\Desktop\gitclone.py", line 1, in <module>
    from git import Repo   
File "C:\Users\1096506\AppData\Local\Programs\Python\Python36-32\lib\site-packages\git\__init__.py", line 84, in <module>
    refresh()   
File "C:\Users\1096506\AppData\Local\Programs\Python\Python36-32\lib\site-packages\git\__init__.py", line 73, in refresh
    if not Git.refresh(path=path):   
File "C:\Users\1096506\AppData\Local\Programs\Python\Python36-32\lib\site-packages\git\cmd.py", line 293, in refresh
    raise ImportError(err) ImportError: Bad git executable. The git executable must be specified in one of the following ways:
     - be included in your $PATH
     - be set via $GIT_PYTHON_GIT_EXECUTABLE
     - explicitly set via git.refresh()

All git commands will error until this is rectified.

This initial warning can be silenced or aggravated in the future by setting the
$GIT_PYTHON_REFRESH environment variable. Use one of the following values:
    - quiet|q|silence|s|none|n|0: for no warning or exception
    - warn|w|warning|1: for a printed warning
    - error|e|raise|r|2: for a raised exception

Example:
    export GIT_PYTHON_REFRESH=quiet
python git gitpython
11个回答
8
投票

由于 Muthukumaran 的帮助,遇到了同样的问题,让它正常工作。让 Muthukumaran 的答案更清楚即可。

请按照以下步骤操作:

import os
os.environ["GIT_PYTHON_REFRESH"] = "quiet"
import git

6
投票

出现错误是因为路径中没有git。所以它无法导入 git 模块。 有几种方法可以解决它。

  • 按照上面的建议将 git 二进制路径添加到环境变量路径中。

  • 如果 git 没有在模块中直接使用,并且它只是一个依赖模块导入,那么在导入 git 之前会抛出此异常,我们可以添加

    os.environ["GIT_PYTHON_REFRESH"] = "安静"

并在此行之后导入 git,这将抑制由于 git import 导致的错误


5
投票

我也有同样的问题。我所做的是: 我转到:系统属性 -> 环境变量

在系统变量部分,我单击了 PathEditMove Up

环境变量

编辑并从底部向上移动两个位置


2
投票

查看操作系统是否安装了Git。
如果不先安装 git 这将解决你的错误。

Centos

sudo yum -y install git

Ubuntu/Debian

sudo apt-get install git

Mac 操作系统

sudo brew install git

这解决了我的问题。


2
投票

确保您不在 *nix 上无法访问的目录中,例如当您刚刚成为 root 用户然后执行了

su username

您可能仍在根目录的主文件夹中,这将触发此错误(假设您设置了正确的环境变量,并且使用

source ~/.bashrc
获取了 .profile 或 .bashrc 等)

which git
/usr/bin/git

即使设置环境后我也收到此错误:

在~/.bashrc中

# for bench 
PATH=$PATH:/usr/bin/git
export PATH


GIT_PYTHON_GIT_EXECUTABLE=/usr/bin/git
export GIT_PYTHON_GIT_EXECUTABLE




cd 

并且它正在工作

$ bench --version
WARN: Command not being executed in bench directory
5.3.0

0
投票

我最近遇到了类似的问题,安装 git 然后重新启动 Windows Powershell CommandLine 解决了问题。希望有帮助。


0
投票

对于那些使用 Lambda 层的人。正如上面的评论所说,只需添加

GIT_PYTHON_REFRESH=quiet
作为环境变量即可添加。


0
投票

我遇到了与主题启动者相同的问题,但使用的是 GRASS 8.3。

出于某种原因,在 Windows 10 中将

C:\Program Files\Git\bin
添加到
path
不起作用。

但是将这一行添加到运行 GRASS 的

grass83.bat
中 - 解决了问题:

path C:\Program Files\Git\bin;%PATH%
.


0
投票

在 Windows 上遇到此错误:

Failed to initialize: Bad git executable.

通过下载 Git 并选择“Git from the command line and also from 3rd-party software”来解决。

https://git-scm.com/download/

enter image description here

完全错误:

初始化失败:git 可执行文件错误。 git 可执行文件必须是 通过以下方式之一指定: - 包含在您的 $PATH 中 - 通过 $GIT_PYTHON_GIT_EXECUTABLE 设置 - 通过 git.refresh() 显式设置

在纠正此问题之前,所有 git 命令都会出错。

这个最初的信息将来可能会被压制或加剧 设置 $GIT_PYTHON_REFRESH 环境变量。使用其中之一 以下值: - Quiet|q|silence|s|silent|none|n|0:没有消息或异常 - warn|w|warning|log|l|1:用于警告消息(日志记录级别 CRITICAL,默认显示) - error|e|exception|raise|r|2:针对引发的异常

示例: 导出 GIT_PYTHON_REFRESH=安静


0
投票

运行命令

set GIT_PYTHON_GIT_EXECUTABLE=C:\Program Files\Git\cmd\git.exe 

在命令提示符中。


-2
投票

在终端中执行

GIT_PYTHON_REFRESH=quiet
,然后尝试运行代码。

© www.soinside.com 2019 - 2024. All rights reserved.