天天看點

一行代碼簡化Python異常資訊:錯誤清晰指出,排版簡潔美觀 | 開源分享

魚羊
公衆号 QbitAI

即使是Python,報錯時也令人頭大。

看着這一堆亂麻,不知道是該懷疑人生,還是懷疑自己手殘。

一行代碼簡化Python異常資訊:錯誤清晰指出,排版簡潔美觀 | 開源分享

那麼,Python異常輸出美化工具PrettyErrors了解一下?

隻需一個import,報錯也能整齊劃一,錯誤代碼位置、錯誤原因清晰明了,一眼就能看清。debug仿佛都沒有那麼痛苦了。

一行代碼簡化Python異常資訊:錯誤清晰指出,排版簡潔美觀 | 開源分享

一行代碼簡化報錯

先來試試一個簡單的錯誤。

def foo():
    1/0

foo()      

不使用PrettyErrors庫,報錯資訊長這樣:

一行代碼簡化Python異常資訊:錯誤清晰指出,排版簡潔美觀 | 開源分享

倒是能看清,就是這一長串紅字十分醜陋。

讓我們來import一下pretty_errors。輸出變成了這個樣子:

一行代碼簡化Python異常資訊:錯誤清晰指出,排版簡潔美觀 | 開源分享

是不是清晰簡潔了許多?

還可以自定義顔色。

一行代碼簡化Python異常資訊:錯誤清晰指出,排版簡潔美觀 | 開源分享

bug少的時候,還不覺得有什麼太大差別。當報錯資訊鋪滿一整頁,美觀不美觀,對心靈的打擊程度就完全不同了。

一行代碼簡化Python異常資訊:錯誤清晰指出,排版簡潔美觀 | 開源分享

使用指南

像Python的所有第三方庫一樣,PrettyErrors的安裝十分簡單。

pip一下:

python -m pip install pretty_errors      

如果你想讓你的每一個程式都能這樣在報錯時也保持美貌,那麼運作下面這這行指令,就不用每次都 import pretty_errors 啦。

python -m pretty_errors      

并且,如此一來,文法錯誤(SyntaxError)的格式也同樣能被美化。僅在程式中 import pretty_errors 時,這一點是無法實作的。

不喜歡預設配置,想要打造自己滿意的美化效果?那就試試這幾個函數:

  • pretty_errors.configure()
  • pretty_errors.whitelist()
  • pretty_errors.blacklist()
  • pretty_errors.pathed_config()

比如要改變輸出檔案名的顔色,代碼是這樣的:

pretty_errors.configure(filename_color = pretty_errors.BRIGHT_YELLOW)      

如果你發現上面這一番操作之後,啥改變也沒發生,那就檢查一下PYTHON_PRETTY_ERRORS,當它的值為0時,PrettyErrors是被禁用的。

set PYTHON_PRETTY_ERRORS=1      

需要注意的是,你使用的終端本身具有顔色輸出功能,異常資訊輸出才會帶有不同的顔色。如果不巧你慣用的是單色終端,那麼可以試試 pretty_errors.mono() 中的設定。

人生苦短,bug實多。

何不試試PrettyErrors,給Debug的過程添加幾分美感~

傳送門