0

我正在使用 GitPython 将远程存储库获取到我的机器。以下代码在我的 Ubuntu 12.04 上运行良好,但在我的 amazon ec2 上,在 Ubuntu 11.10 服务器上,我收到 OSError: [Errno 2] No such file or directory 错误。

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

当我在脚本中运行该块时,我没有收到任何错误消息。但是当我在交互式 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
>>> 

但是我的本地机器上没有这样的问题。不知道出了什么问题。任何帮助将不胜感激!

4

1 回答 1

2

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

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

于 2012-05-29T19:08:50.427 回答