2014-07-23 18 views
1

我正在使用distutils通過python腳本編譯C代碼。如果事情出錯,我希望能夠捕獲錯誤輸出。爲此,我在運行setup()命令之前將stdout和stderr重定向到臨時文件(您需要使用os.dup2)。使用mingw捕獲distutils的錯誤輸出

在Linux上,它工作正常。在windows + mingw我得到一些非常奇怪的行爲:

  • 沒有嘗試捕獲,stdout和stderr都寫入命令提示符。
  • 當我嘗試捕獲時,標準輸出工作正常,但輸出到標準錯誤消失。

有人明白這裏發生了什麼嗎?

回答

1

Woops。

事實證明,這是非常簡單的事情:捕獲標準輸出和標準錯誤輸出工作得很好,但我希望捕獲的特定錯誤消息(這是Windows特定的)不是打印輸出的一部分,但錯誤提升的SystemExit異常的消息。

的時間大大的浪費:(

+3

噢,那獎金是怎麼回事浪費... – Veedrac

+0

對不起!巨大的浪費,確實是 –

+0

可我只是複製粘貼你的答案,並用它作爲我的答案,這樣的獎金是不會被浪費了嗎?大聲笑。開玩笑。 –