我正在使用subprocess.Popen执行make命令。但是当make失败时,我并没有从make中得到确切的错误,只是继续运行。如何获得脚本停止和显示控制台make命令将subprocess.Popen stderr重定向到控制台
def app(self, build, soc, target):
command = "make BUILD=%s SOC=%s TARGET=%s" % (build, soc, target)
subprocess.Popen(command.split(), shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE).communicate()
什么(蟒蛇相关的)错误你得到,当它失败了呢? –
如果可能,最简单的方法是使用Python 3.4,并用'subprocess.run()'将调用替换为'subprocess.popen()'。它返回一个包含stdout和stderr的返回码和结果作为字符串列表的对象。 –
@Tom Dalton其实问题是它只是继续,并没有抛出异常。然后在脚本中,它依赖于make命令传递,这里是脚本失败的时候。 – homeGrown