在python

时间:2018-01-23 10:31:29

标签: python git gitpython

我试图使用访问密钥克隆git repo,但是当我尝试运行它时,它会抛出一个异常,说找不到git可执行文件。 但是我已经安装了git并且in_it.py显示了正确的路径“C:\ Program Files \ Git \ bin”我还安装了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

8 个答案:

答案 0 :(得分:1)

发生错误,因为git不在路径中。因此,它无法导入git模块。 解决该问题的几种方法。

  • 如上所述,将git二进制路径添加到环境变量路径。

  • 如果git未直接在模块中使用,并且只有它的依赖模块导入,则在导入git之前抛出此异常,我们可以添加

    os.environ [“ GIT_PYTHON_REFRESH”] =“安静”

并在此行之后导入git,这将消除由于git import引起的错误

答案 1 :(得分:0)

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

在“系统变量”部分,我单击了路径编辑上移

环境变量

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

Centos
sudo yum -y install git

Ubuntu / Debian
sudo apt-get install git

Mac OS
sudo brew install git

这解决了我的问题。

答案 4 :(得分:0)

由于Muthukumaran,同样的问题使它得以解决。只是让Muthukumaran答案更清楚

遵循这些步骤

导入操作系统 os.environ [“ GIT_PYTHON_REFRESH”] =“安静” 导入git

答案 5 :(得分:0)

对于那些使用 Lambda 层的人。正如上面的评论所说,添加 GIT_PYTHON_REFRESH=quiet 作为环境变量。

答案 6 :(得分:0)

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

您可能仍在 root 的主文件夹中,这将触发此错误(假设您设置了正确的环境变量,并使用 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

答案 7 :(得分:-1)

在终端中执行GIT_PYTHON_REFRESH=quiet,然后尝试运行代码。