Вопрос по python, git – OSError: [Errno 2] Нет такого файла или каталога на GitPython

0

Я использую GitPython для загрузки удаленного репозитория на мою машину. Следующий код хорошо работает на моем Ubuntu 12.04, но на моем amazon ec2 на сервере Ubuntu 11.10 я получаю сообщение об ошибке: [Errno 2] Нет такого файла или ошибки каталога.

    repo = git.Repo.init(fs_path)
    origin = repo.create_remote('origin',repo_url)
    origin.fetch()
    origin.pull(origin.refs[0].remote_head)

Когда я запускаю блок в скрипте, я не получаю никаких сообщений об ошибках. Но когда я пытаюсь выполнить эти шаги в интерактивной оболочке, я получаю следующий стек:

>>> import git
>>> repo = git.Repo.init("/var/wwww/dir/subdir/tmp/12")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.2.RC1-py2.7.egg/git/repo/base.py", line 656, in init
    output = git.init(**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.2.RC1-py2.7.egg/git/cmd.py", line 227, in <lambda>
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.2.RC1-py2.7.egg/git/cmd.py", line 456, in _call_process
    return self.execute(call, **_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.2.RC1-py2.7.egg/git/cmd.py", line 335, in execute
    **subprocess_kwargs
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1239, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
>>> 

Но у меня нет таких проблем на моей локальной машине. Понятия не имею, что происходит не так. Любая помощь будет высоко оценена!

путь существует и Python может получить к нему доступ masnun

Ваш Ответ

1   ответ
2

subprocess модуль. Это говорит о том, чтоgit либо не установлен на вашем экземпляре EC2, либо находится в местоположении, которое отсутствует в вашемPATH переменная окружения.

Обратите внимание, чтоGitPython зависит отgit инструменты командной строки. Если вам нужен собственный модуль Python для взаимодействия с репозиториями Git, взгляните на Далуич.

Я сам узнал об этом и пришел сюда, чтобы ответить на вопрос. Да, действительно, я не установил git, и это стало причиной ошибки. Спасибо за быстрый ответ. Я просто хотел бы, чтобы Gitpython выдавал более значимое сообщение об ошибке / исключение. Если библиотека зависит от внешнего инструмента, первое, что должна сделать библиотека, это проверить, установлена ли зависимость. Был тяжелый час с этим. Еще раз спасибо masnun
Я рад, что это сработало. larsks

Похожие вопросы