2009-09-28 61 views
2

除了使用一個完全集成的IDE與調試器的Python(如使用Eclipse),是否有實現這一目標的任何小工具:Python對象檢查器?

  • 在運行程序時,我希望能夠在某個地方鉤到它(類似於插入打印語句),並調用與對象檢查員)窗口(樹形視圖
  • 關閉窗口後,程序應恢復

它沒有需要打磨,甚至沒有絕對穩定,它可能是像wx這樣的一些小部件庫的內省示例代碼。獨立平臺會很好,但不是PyObjC程序,或類似Windows上的程序。

什麼想法?

編輯: 是的,我知道pdb,但我正在尋找所有當前對象的圖形樹。

儘管如此,這裏是關於如何使用PDB很好的介紹(在這種情況下,在Django): pdb + Django

回答

5

Winpdb是一個平臺獨立圖形GPL Python調試器與對象檢查器。

它支持通過網絡進行遠程調試,多線程,命名空間修改,嵌入式調試,加密通信,速度比pdb快20倍。

其他一些特點:

  • GPL許可證。 Winpdb是自由軟件。
  • 與CPython的2.3至2.6和Python 3000
  • 與wxPython的2.6兼容兼容通過獨立的2.8
  • 平臺,並在Ubuntu的Jaunty和Windows XP的測試。
  • 用戶界面:rpdb2是基於控制檯的,而winpdb需要wxPython 2.6或更高版本。

下面是一個屏幕截圖,顯示左上方的本地對象樹。

Screenshot http://winpdb.org/images/screenshot_winpdb_small.jpg

+0

謝謝你,這看起來很有前途,並且在第一次測試中表現很好。我必須弄清楚如何在Django中使用它,可能是一個不錯的工具:-) (並調試自己,有點兒有趣。) – 2009-09-28 21:25:01

0

您可以使用IPython中,與%debug聲明。一旦代碼崩潰,您可以添加斷點,查看對象等。啓動調試器的一種非常粗糙的方法是在您的代碼的某一行輸入raise Exception,在ipython中運行它,類型爲%debug,當它崩潰時。

3

pdb不是窗口,它在控制檯中運行,但它是在Python程序中調試的標準方式。

插入這個地方要停止:

import pdb;pdb.set_trace() 

你會在標準輸出上獲得提示。

1

如果商業解決方案是可以接受的,Wingware可能是OP的願望的答案(Wingware確實有免費版本,但我不認爲他們有他需要的全部調試能力,付費版本提供的)。