首页 > 解决方案 > 将便携式 git 与 pythongit 一起使用

问题描述

我从这里下载了便携式 git:https ://github.com/git-for-windows/git/releases/download/v2.22.0.windows.1/PortableGit-2.22.0-64-bit.7z.exe

然后我将它安装到C:\\Programs\\Git

我通过运行安装了 git python pip install gitpython。我的问题是当我导入 git 时出现此错误

>>> import git
Traceback (most recent call last):
  File "C:\Users\26099\AppData\Local\Programs\Python\Python36\lib\site-packages\git\__init__.py", line 83, in <module>
    refresh()
  File "C:\Users\26099\AppData\Local\Programs\Python\Python36\lib\site-packages\git\__init__.py", line 73, in refresh
    if not Git.refresh(path=path):
  File "C:\Users\26099\AppData\Local\Programs\Python\Python36\lib\site-packages\git\cmd.py", line 290, 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


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\26099\AppData\Local\Programs\Python\Python36\lib\site-packages\git\__init__.py", line 85, in <module>
    raise ImportError('Failed to initialize: {0}'.format(exc))
ImportError: Failed to initialize: 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

我知道那是因为它找不到 git。错误说我可以告诉 pythongit 它在哪里,但我不知道该怎么做

标签: python-3.xgitgitpython

解决方案


Portable Git 似乎不会自动将git可执行文件的目录导入环境变量Path(您可以输入git命令提示符或 Powershell 进行检查)。

因此,为了确保 python git 能够找到git,您可以

  • git可执行文件所在的路径(在这种情况下可能C:\Programs\Git\bin)添加到Path变量

或者

  • 将环境变量的值设置为可执行文件GIT_PYTHON_GIT_EXECUTABLE的路径(在这种情况下可能)。gitC:\Programs\Git\bin\git.exe

希望能帮助到你。


推荐阅读