尝试使用python脚本执行git命令
问题描述:
我正在尝试使用下面的python脚本执行一个简单的git命令。尝试使用python脚本执行git命令
#!/usr/bin/python
import commands
import subprocess
import os
import sys
pr = subprocess.Popen("/usr/bin/git log" , cwd = os.path.dirname('/ext/home/rakesh.kumar/workspace/myproject'), shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
(out, error) = pr.communicate()
print "Error : " + str(error)
print "out : " + str(out)
但即使我正在git reposetory所在的同一目录中运行python脚本,我也收到以下错误。
Error : fatal: Not a git repository (or any of the parent directories): .git
我怀疑混帐可能得到correputed,但git的文件都很好,如果我执行正常的命令提示符Git命令工作。
我试图在网上搜索,但无法获得有用的信息。请帮助它将不胜感激。
答
试试这个:
#!/usr/bin/python
import commands
import subprocess
import os
import sys
pr = subprocess.Popen("/usr/bin/git log" , cwd = os.path.dirname('/ext/home/rakesh.kumar/workspace/myproject/'), shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
(out, error) = pr.communicate()
print "Error : " + str(error)
print "out : " + str(out)
目录路径应该有 '/' 结尾。
+0
感谢您的及时答复亚当,它现在的作品。 – Rakesh 2012-03-19 18:00:21
+0
请注意,如果您有'GIT_DIR'环境变量集(特别是相对路径,可能发生在git钩子中),也会发生此错误。 – 2014-09-04 15:17:05
答
的问题是你的os.path.dirname()
使用:
os.path.dirname('/ext/home/rakesh.kumar/workspace/myproject')
会给你:
>>> os.path.dirname('/ext/home/rakesh.kumar/workspace/myproject')
'/ext/home/rakesh.kumar/workspace'
其中,我敢打赌,是不是你想要的。
包装在79个字符的代码有什么问题? – 2014-04-08 13:36:30