在 Mac 和 Linux 平台上除錯 wxPython 應用程式的方法

wxPython的應用程式在執行時,會把stdout和stderr兩個管道的訊息都重導到介面上的一個TextCtrl,(反正錯誤程式就用不到了嘛,所以就拿來顯示錯誤訊息的意思。),但是有用過的人都知道,在Mac上和Linux上,這個TrackBack的錯誤訊息是顯示不出來的,只顯示一個標題而已,這樣子要我們人工debug真的很困難。

[][1]

應用程式在執行的時候需要實體話一個類別,wx.App,這個類別在建構的時候有一個參數可以調整,叫做redirect,預設為True,也就是把stdout和stderr的訊息都導向到介面上。如果要在Mac和Linux上面看到錯誤訊息,只要把redirect設為False,就可以在console看到錯誤訊息囉!

程式碼:

#!/usr/bin/env python  
# -*- coding: utf-8 -*-  

# Make some errors here by yourself.  

if __name__ == '__main__':  
 # The messages from stderr and stdout will been redirected to the App if redirect parameter is True.  
 app = wx.App(redirect = False)  
 app.MainLoop()  

[1]:

comments powered by Disqus