我想问一下如何解决这个问题

时间:2018-11-26 04:50:20

标签: python git gitpython

Traceback (most recent call last):
  File "/home/shi/anaconda3/lib/python3.6/site-packages/git/__init__.py", line 83, in <module>
    refresh()
  File "/home/shi/anaconda3/lib/python3.6/site-packages/git/__init__.py", line 73, in refresh
    if not Git.refresh(path=path):
  File "/home/shi/anaconda3/lib/python3.6/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 "github-scraper/scraper.py", line 5, in <module>
    from PyRepo import PyRepo
  File "/home/shi/PycharmProjects/pycodesuggest-master/github-scraper/PyRepo.py", line 2, in <module>
    from git import Repo
  File "/home/shi/anaconda3/lib/python3.6/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

1 个答案:

答案 0 :(得分:0)

我认为该消息非常清楚地说明了正在发生的事情: git不在PATH中。抱怨的python脚本可能正在调用运行“ git”。为了使它起作用,必须将git可执行文件的目录作为目录包含在PATH中。如果不是这样,那么呼叫将惨败。另一种可能性是通过设置另一个环境变量(GIT_PYTHON_EXECUTABLE),如果git可执行文件本身不在PATH中并且您不想弄乱PATH变量,则可以在其中指定git可执行文件本身的位置。