我正在尝试使用以下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
我怀疑git可能得到了相应的判断,但是git文件很好,如果我在正常的命令提示符下执行,git命令就可以工作。
我试图在网上搜索,但无法获得有用的信息。请帮助它将不胜感激。
答案 0 :(得分:5)
问题在于您使用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'
我打赌,这不是你想要的。
答案 1 :(得分:4)
试试这个:
#!/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)
目录路径最后应该有'/'。