2011年5月2日 星期一

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

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



應用程式在執行的時候需要實體話一個類別,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()

沒有留言:

張貼留言