используя переносной Git с pythongit - PullRequest
0 голосов
/ 12 июля 2019

Я скачал портативный 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, где он находится, но я не уверен, как это сделать

1 Ответ

1 голос
/ 12 июля 2019

Portable Git, похоже, не импортирует каталог исполняемого файла git в переменную среды Path автоматически (вы можете набрать git в командной строке или Powershell для проверки).

Таким образом, чтобы Python git смог найти git, вы можете либо

  • добавить путь, по которому расположен исполняемый файл git (в данном случае, возможно, C:\Programs\Git\bin), в переменную Path

или

  • установить значение переменной среды GIT_PYTHON_GIT_EXECUTABLE равным пути к исполняемому файлу git (в данном случае, возможно, C:\Programs\Git\bin\git.exe).

Надеюсь, это поможет.

...