![](/img/trans.png)
[英]How do I make IPython reload a file passed to `ipython -i …`
[英]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.