2

ある時点で例外を発生させるPythonプログラムを長時間実行しています。これをipythonセッションから実行し、例外で停止して、ライブデータを調べる方法はありますか?

4

2 に答える 2

3

ipython -i yourscript.pyインタプリタ環境でスクリプトを実行するが必要な場合があります。ただし、これでは、例外が発生したローカル環境(関数内のローカル変数など)を検査することはできません。グローバルを検査するだけで済みます。代わりにこれが必要になる可能性があります。

In [1]: %run test.py
<exception occurs>
In [2]: %debug test.py

PDBの使用に慣れていない場合は、最初にいくつかのドキュメントを確認してください。

ThomasKに感謝します

于 2013-02-08T15:11:29.463 に答える
0

はい、セットアップ方法によって異なります。プログラムをインポートして、ブロックを除くtry内の他のモジュールと同じように実行できます。

import yourprogram
try:
    yourprogram.main_function(args)
except:
    print "we blew up, investigate why"

プログラムが関数内にない場合は、インポートの周囲にtryブロックを配置する必要がある場合があります。

このアプローチの問題は、調べたい変数がスコープ内にない可能性があることです。私は通常、さまざまな時点で印刷ステートメントまたはログメッセージを使用して、期待していないように見えるものを把握します。

于 2013-02-08T15:56:02.173 に答える