如何在Python中找出警告的原因?

时间:2015-10-29 01:01:37

标签: python-2.7 debugging pdb

我在程序中运行scipy.stats.stats.pearsonr()时遇到以下警告

/usr/local/lib/python2.7/dist-packages/scipy/stats/stats.py:2471: RuntimeWarning: invalid value encountered in double_scalars

我想知道如何找出警告的原因,通过使用打印输出,或使用像pdb这样的调试器(我对pdb有所了解,但我不知道如何使用pdb来找出原因警告在这里。)

以下是我的程序使用pearsonr()

的行
    ...
    corr = pearsonr(t1, t2)
    ...

2 个答案:

答案 0 :(得分:1)

根据docs,您可以更改默认警告行为以引发异常,这当然会使跟踪和调试变得更加容易。

import warnings
# Cause all warnings to raise exceptions:
warnings.simplefilter("error")  # change the hook
# Trigger a warning:
corr = pearsonr(t1, t2)  # this will now raise

答案 1 :(得分:0)