尝试使用python脚本执行git命令
我正在尝试使用以下python脚本执行一个简单的git命令尝试使用python脚本执行git命令,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 = subproc
#!/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命令也可以工作
我试图在网上搜索,但找不到有用的信息。请帮忙,我们将不胜感激 试试这个:
#!/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)
目录路径的末尾应该有“/”。问题在于您使用了
os.path.dirname()
:
将为您提供:
>>> os.path.dirname( '/ext/home/rakesh.kumar/workspace/myproject' )
'/ext/home/rakesh.kumar/workspace'
我敢打赌,这不是您想要的。以79个字符包装的代码有什么问题吗?请注意,如果设置了
GIT_DIR
环境变量,也会发生此错误(尤其是相对路径,就像在GIT hooks中发生的那样)
>>> os.path.dirname( '/ext/home/rakesh.kumar/workspace/myproject' )
'/ext/home/rakesh.kumar/workspace'