我正在使用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