簡體   English   中英

如何讓 IPython 自動調用 pdb 進行警告?

[英]How do I make IPython automatically call pdb for warnings?

自動 pdb 調用通過在 IPython 中切換 %pdb 來解決錯誤。 是否有等效的操作(或解決方法)在警告時自動調用 pdb?

將 pdb.set_trace() 添加到報告的行號並不理想,因為警告位於從我的代碼調用的庫文件中。

“python -m pdb myscript.py”將執行此操作,但我在 ipython repl 中,而不是常規 python repl。

這里的用例是查找類型提示錯誤,這些錯誤被報告為這樣的警告“RuntimeWarning:在相等中遇到無效值”

通過設置一個簡單的過濾器將警告轉換為'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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM