pretty_errors 是一個專為 Python 開發(fā)者設計的第三方庫,用于將默認的錯誤回溯(traceback)格式美化、結構化,使其更易讀、層次更清晰。它能夠用顏色、縮進、高亮、上下文代碼片段等方式展示錯誤信息,大幅提升調試體驗。對于日常開發(fā)、腳本調試、日志分析和教學示例等場景非常實用。
安裝 :
pip install pretty_errors啟動:
python -m pretty_errors在支持顏色的終端運行腳本:
python your_script.py常見應用場景:
(1)調試 Python 腳本
顯著提升錯誤回溯可讀性,加速定位問題。
(2)教學或演示代碼
更清晰的錯誤展示,讓初學者能快速理解錯誤來源。
(3)命令行工具(CLI)
使工具報錯更友好,提升用戶體驗。
(4)開發(fā)大型項目
過濾無關堆棧信息,突出核心錯誤。
(5)日志輸出增強
生成更清晰的調試日志,便于排查問題。
◆ ◆ ◆
核心概念
1、Traceback 美化(Pretty Traceback)
通過顏色、縮進、樣式使異常輸出更加結構化,易于閱讀。
2、上下文代碼片段(Context Preview)
在錯誤發(fā)生處顯示周圍幾行代碼,幫助快速理解問題環(huán)境。
3、輸出過濾(Path Filtering)
自動隱藏第三方庫路徑,聚焦項目代碼。
4、樣式與主題(Themes)
支持自定義顏色、縮進、代碼高亮樣式。
5、自動啟用模式
只需 import pretty_errors 即可立即接管所有異常輸出。
◆ ◆ ◆
應用舉例
例 1:默認啟用美化
foo()運行后得到清晰高亮的錯誤輸出。
例 2:啟用“短格式”以減少噪音
foo()例 3:顯示更多代碼上下文
foo()例 4:過濾掉虛擬環(huán)境路徑
pretty_errors.blacklist("venv")例 5:自定義輸出寬度
foo()◆ ◆ ◆
常用函數(shù)與類速覽
pretty_errors.configure(**options)
配置全局異常美化格式。
參數(shù)(常用):
line_length:每行輸出的最大長度(默認為 0,表示自動匹配終端寬度)。
full_line_newline:是否在滿一行時強制換行。
filename_display:文件名顯示模式,可以是 pretty_errors.FILENAME_COMPACT / FILENAME_EXTENDED / FILENAME_FULL。
separator_character:用來分隔 header 的字符。
display_timestamp:是否在 header 顯示時間戳。
display_link:是否顯示可以點擊的鏈接(例如 VSCode 中)。
lines_before / lines_after:在異常行前后顯示多少源代碼行。
trace_lines_before / trace_lines_after:對其他 stack frame 同樣控制前后多少行顯示。
truncate_code:是否截斷過長的代碼行。
display_locals / display_trace_locals:是否顯示本地變量 /其他 frame 的本地變量。
stack_depth、top_first、exception_above / exception_below 等其他配置項。
返回:無。
pretty_errors.blacklist(path)
隱藏包含指定路徑的回溯條目(如 venv 或 site-packages)。
參數(shù):
path:路徑字符串或關鍵字。
返回:無。
pretty_errors.replace_stderr()
將標準錯誤輸出替換為 pretty_errors 的輸出格式。
參數(shù):無。
返回:無。
pretty_errors.activate()
主動啟用美化模式(與 import 效果相同)。
參數(shù):無。
返回:無。
pretty_errors.debug()
啟用調試模式,輸出內部處理信息。
參數(shù):無。
返回:無。
◆ ◆ ◆
補充說明
(1)pretty_errors 主要適合開發(fā)環(huán)境,不推薦在生產(chǎn)環(huán)境中直接啟用。
(2)若需要與 logging/traceback 結合,可自定義 hook。
(3)與 rich.traceback 類似,但更輕量、更易配置。
(4)在 Jupyter 中可能不會直接生效,需要特殊配置或使用 rich 代替。
小結
pretty_errors 是一個輕量而實用的異常美化工具,能夠顯著提升 Python 錯誤輸出的可讀性。它通過顏色、縮進、路徑過濾、上下文代碼顯示等方式,讓調試體驗更清晰、更高效。安裝后只需引入即可自動生效,非常適合腳本調試、教學、命令行工具開發(fā)等場景。對于希望提升調試效率、減少閱讀堆棧疲勞的 Python 開發(fā)者而言,pretty_errors 是一個值得長期使用的工具。
![]()
“點贊有美意,贊賞是鼓勵”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.