2

完全に統合された IDE と Python 用のデバッガー (Eclipse など) を使用する以外に、これを実現するための小さなツールはありますか?

  • プログラムを実行するときに、どこかにフックして (print ステートメントを挿入するのと同じように)、オブジェクト インスペクター (ツリー ビュー) でウィンドウを呼び出せるようにしたい
  • ウィンドウを閉じた後、プログラムを再開する必要があります

洗練されている必要はなく、完全に安定しているわけでもありません。wx などのウィジェット ライブラリのイントロスペクション サンプル コードである可能性があります。ただし、プラットフォームに依存しないのは良いことです (PyObjC プログラムや、Windows のようなものではありません)。

何か案は ?

編集: はい、pdb については知っていますが、現在のすべてのオブジェクトのグラフィカル ツリーを探しています。

とはいえ、pdb の使用方法 (この場合は Django) の優れた紹介は次のとおりです。 pdb + Django

4

5 に答える 5

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 以降が必要です。

左上にあるローカル オブジェクト ツリーを示すスクリーンショットを次に示します。

スクリーンショット
(出典: winpdb.org )

于 2009-09-28T19:29:55.860 に答える
2

pdb はウィンドウ化されておらず、コンソールで実行されますが、Python プログラムでデバッグする標準的な方法です。

停止したい場所にこれを挿入します。

import pdb;pdb.set_trace() 

stdout にプロンプ​​トが表示されます。

于 2009-09-28T16:44:42.340 に答える
1

商用ソリューションが受け入れられる場合、WingwareはOPの要望に対する答えかもしれません(Wingwareには無料バージョンがありますが、有料バージョンが提供する必要な完全なデバッグ機能を備えているとは思いません)。

于 2009-09-28T16:53:57.480 に答える
1

Python Debugging Techniquesは読む価値があります。Reddit のコメントも読む価値があります。Brian のコメントから、素晴らしいデバッグ トリックを見つけました。このコメントこのコメントなど。
もちろん、WingIDE は (一般的な Python コーディングと Python コードのデバッグ用に) クールで、私は毎日使用しています。残念なことに、WingIDE はまだ IPython を埋め込むことができません。

于 2009-09-29T02:23:25.553 に答える
-1

ステートメントでipythonを使用できます%debug。コードがクラッシュしたら、ブレークポイントを追加したり、オブジェクトを表示したりできます。デバッガーをキックオフする非常に大雑把な方法raise Exceptionは、コードのある行で、クラッシュ時のタイプであるipythonで実行すること%debugです。

于 2009-09-28T16:39:38.373 に答える