OSError:[Errno 2] GitPython上没有这样的文件或目录

时间:2012-05-29 18:35:19

标签: python git gitpython

我正在使用GitPython来获取我的机器的远程存储库。以下代码在我的Ubuntu 12.04上运行良好,但在我的amazon ec2上,在Ubuntu 11.10服务器上,我得到了OSError:[Errno 2]没有这样的文件或目录错误。

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

当我在脚本中运行块时,我没有收到任何错误消息。但是当我在Interactive shell上尝试这些步骤时,我得到了这个堆栈跟踪:

>>> 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
>>> 

但我的本地机器上没有这样的问题。不知道出了什么问题。任何帮助将受到高度赞赏!

1 个答案:

答案 0 :(得分:2)

错误来自subprocess模块。这表明git未安装在您的EC2实例上或位于PATH环境变量中的位置。

请注意,GitPython取决于git命令行工具。如果您想要一个本机Python模块与Git存储库进行交互,请查看dulwich