我正在使用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
>>>
但我的本地机器上没有这样的问题。不知道出了什么问题。任何帮助将受到高度赞赏!
答案 0 :(得分:2)
错误来自subprocess
模块。这表明git
未安装在您的EC2实例上或位于PATH
环境变量中的位置。
请注意,GitPython
取决于git
命令行工具。如果您想要一个本机Python模块与Git存储库进行交互,请查看dulwich。