2011-06-17 6 views
1

警告とともに行番号を表示することは可能ですか?私は恐ろしいものからいくつかの警告を受けていますが、どこから来たのか分かりません。私は自分のコードを載せたり、例外を発生させたりすることは望んでいませんが、警告の起源からより多くの情報を得たいと思います。それは何か可能ですか?警告がPythonでどこから来たのかを知るには

答えて

1

警告は、デフォルトでは、ファイル名と行番号を含む印刷され、その出力はwarningsモジュールならびにPythonインタプリタへ-Wパラメータによって機能によって制御することができます。あなたの警告には明らかにファイル名と行番号が含まれていないので、warningsモジュールはおそらくあなたを助けません。 numpyが原因と思われるので、numpy.seterr()の機能を調べることをおすすめします。たぶん、警告をエラーに変えることは助けになります。

0

EDIT:

のArg!私は理解できないほどの名前を得た。

pycheckerモジュールを使用してください。 distutilsがインストールされている場合は、コマンドラインにeasy_install pycheckerと入力するだけで最新のバージョンを入手できます。 inはデフォルトで警告を生成し、その行番号を表示します。

+0

@Charles Brunetごめんなさい。私は私のモジュールの名前を混ぜた。それは実際にpycheckerです。必要に応じてあなたの呼び出されたモジュールに入ることができるので、あなたのためにnumpyをチェックすることができます。 –

+0

pycheckerはソースを分析しますが、ランタイムエラーと警告については何もしません。 –

1

このように別のモジュールを作成します。 warningsモジュールを介して発行される

import warnings 

# capture all warnings 
with warnings.catch_warnings(record=True) as warns: 
    warnings.simplefilter("always") 
    # do the stuff that triggers warnings. i.e. import your main module 
    # and call whatever is necessary to get it going. This must all be 
    # indented under the with statement! 

# afterward, print captured warnings 
for w in warns: 
    print w.category.__name__, "(%s)" % w.message, 
    print "in", w.filename, "at line", w.lineno 
関連する問題