如何让IPython自动调用pdb进行警告?

时间:2017-01-24 21:32:13

标签: python ipython warnings type-hinting python-3.6

自动pdb调用通过在IPython中切换%pdb来解决错误。是否有相应的操作(或解决方法)在警告时自动调用pdb?

将pdb.set_trace()添加到报告的行号并不理想,因为警告位于从我的代码调用的库文件中。

" python -m pdb myscript.py"会这样做,但我在ipython repl中,而不是常规的python repl。

此处的用例是查找类型提示错误,这些错误会报告为此类警告"运行时警告:在等于"

中遇到无效值

1 个答案:

答案 0 :(得分:1)

通过设置一个简单的过滤器将警告转换为'error'

from warnings import warn, simplefilter
simplefilter('error')

这似乎工作得很好,例如一个示例函数:

def foo():
    a = '20'
    warn("Horrible Things", RuntimeWarning)

现在调用时触发pdb

foo()
> <ipython-input-78-f33d9e580240>(4)foo()
      1 from warnings import warn
      2 def foo():
      3     a = '20'
----> 4     warn("Horrible Things", RuntimeWarning)


ipdb>