我目前正在使用子流程开展GIT自动化。这对我来说是新的。尝试如下所示的基本状态调用,但不断收到错误。
from subprocess import Popen, PIPE
import os
import subprocess
PIPE = subprocess.PIPE
branch = "C:/git-repos/Myfolder"
process = subprocess.Popen(["git status", branch], stdout=PIPE, stderr=PIPE)
stdoutput, stderroutput = process.communicate()
if 'fatal' in stdoutput:print "error"
else:print "Successful"
错误消息::
Traceback (most recent call last):
File "gitscript.py", line 9, in <module>
process = subprocess.Popen(["git status", branch], stdout=PIPE, stderr=PIPE)
File "C:\Python25\Lib\subprocess.py",
line 594, in __init__
errread, errwrite)
File "C:\Python25\Lib\subprocess.py",
line 818, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
我做错了什么?注意:Myfolder是本地GIT仓库。它不是任何主回购的克隆。
按照以下评论后更新了我的问题::
process = subprocess.Popen(["git status", branch], stdout=PIPE, stderr=PIPE, shell=True)
stdoutput, stderroutput = process.communicate()
if 'fatal' in stderroutput:print "error"
else:print "Successful"
1)输出为“成功”。标准打印显示空白。而bash上的命令(git status)工作正常,打印出状态。
2)作为项目的一部分,我必须使用Python25,Windows和GIT版本是1.9。
3)由于子进程不起作用。我试着安装Gitpython。安装不适用于python25。 “setup.py”文件没有列出python25并且一直在丢失导入文件时抛出错误。
请求有关如何处理此问题的任何想法或建议。使用当前的环境设置,我可以使用python实现自动化吗?
请帮助!