builtins.OSError: 'git' содержит недопустимую строку shebang: 'git' не является допустимым исполняемым файлом - PullRequest
0 голосов
/ 01 марта 2019

Я новичок в buildbot.Я устанавливаю master.cfg согласно документации гильдии Buildbot 1.5.0.Я установил мастер по гильдии Учебника. master.cfg - это master.cfg.sample. Его можно принудительно построить, и результат будет успешным.Но в twistd.log произошла ошибка.

builtins.OSError: 'git' содержит недопустимую строку shebang: 'git' не является допустимым исполняемым файлом

Для получения более подробной информации см. Следующее.

Может ли кто-нибудь сказать мне, что случилось?Я уверен, что git хорошо установлен, потому что его можно принудительно собрать.

Его можно принудительно собрать.

2019-03-01 11:45:32+0800 [-] while polling for changes
Traceback (most recent call last):
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\twisted\internet\defer.py", line 1418, in _inlineCallbacks
    result = g.send(result)
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\buildbot\changes\gitpoller.py", line 410, in _dovccmd
    stdout = yield self._dovccmdImpl(command, args, path)
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\twisted\internet\defer.py", line 1613, in unwindGenerator
    return _cancellableInlineCallbacks(gen)
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\twisted\internet\defer.py", line 1529, in _cancellableInlineCallbacks
    _inlineCallbacks(None, g, status)
--- <exception caught here> ---
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\buildbot\changes\gitpoller.py", line 192, in poll
    yield self._checkGitFeatures()
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\buildbot\changes\gitpoller.py", line 122, in _checkGitFeatures
    stdout = yield self._dovccmd('--version', [])
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\buildbot\changes\gitpoller.py", line 410, in _dovccmd
    stdout = yield self._dovccmdImpl(command, args, path)
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\twisted\internet\defer.py", line 1418, in _inlineCallbacks
    result = g.send(result)
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\buildbot\changes\gitpoller.py", line 434, in _dovccmdImpl
    full_args, path=path, env=full_env)
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\twisted\internet\utils.py", line 174, in getProcessOutputAndValue
    reactor)
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\twisted\internet\utils.py", line 28, in _callProtocolWithDeferred
    reactor.spawnProcess(p, executable, (executable,)+tuple(args), env, path)
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\twisted\internet\posixbase.py", line 353, in spawnProcess
    return Process(self, processProtocol, executable, args, env, path)
  File "c:\buildbot\tmp\bb-master\sandbox\lib\site-packages\twisted\internet\_dumbwin32proc.py", line 240, in __init__
    command, command))
builtins.OSError: 'git' has an invalid shebang line: 'git' is not a valid executable

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете увидеть вид кода, выдающего сообщение об ошибке здесь :

            # look for a shebang line.  Insert the original 'command'
            # (actually a script) into the new arguments list.
            sheb = _findShebang(command)
            if sheb is None:
                raise OSError(
                    "%r is neither a Windows executable, "
                    "nor a script with a shebang line" % command)
            else:
                args = list(args)
                args.insert(0, command)
                cmdline = quoteArguments(args)
                origcmd = command
                command = sheb
                try:
                    # Let's try again.
                    doCreate()
                except pywintypes.error, pwte2:
                    # d'oh, failed again!
                    if _invalidWin32App(pwte2):
                        raise OSError(
                            "%r has an invalid shebang line: "
                            "%r is not a valid executable" % (
                                origcmd, sheb))
                    raise OSError(pwte2)

Очевидно, что при выполнении git (как извлечено из shebang ) процесс не находит git в пути и завершается неудачей.

Использование /c/path/to/git.exe в качестве шебанга может быть более продуктивным.

...