Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何在Python中找出警告的原因?_Python 2.7_Debugging_Pdb - Fatal编程技术网

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

Python 2.7 如何在Python中找出警告的原因?,python-2.7,debugging,pdb,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来找出警告的原因) 下面是我使用p

当它在我的程序中运行
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()
的程序行:

替换为将出现异常的函数。

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

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) 我没有使用
警告。showwarning
。您将如何使用打印堆栈跟踪的函数?(2) 我在一个循环中使用
corr=pearsonr(t1,t2)
,我的帖子中引用的警告只在某个迭代中出现。当警告发生时,我如何捕捉迭代?打印堆栈跟踪的每一帧。
corr=pearsonr(t1,t2)
在一个循环中,我的帖子中引用的警告只在某个迭代中发生。当警告发生时,我如何捕捉迭代?还是说每次迭代都要打印堆栈跟踪的每一帧?
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