pretty_errors 是一个专为 Python 开发者设计的第三方库,用于将默认的错误回溯(traceback)格式美化、结构化,使其更易读、层次更清晰。它能够用颜色、缩进、高亮、上下文代码片段等方式展示错误信息,大幅提升调试体验。对于日常开发、脚本调试、日志分析和教学示例等场景非常实用。
安装 :
pip install pretty_errors启动:
python -m pretty_errors在支持颜色的终端运行脚本:
python your_script.py常见应用场景:
(1)调试 Python 脚本
显著提升错误回溯可读性,加速定位问题。
(2)教学或演示代码
更清晰的错误展示,让初学者能快速理解错误来源。
(3)命令行工具(CLI)
使工具报错更友好,提升用户体验。
(4)开发大型项目
过滤无关堆栈信息,突出核心错误。
(5)日志输出增强
生成更清晰的调试日志,便于排查问题。
◆ ◆ ◆
核心概念
1、Traceback 美化(Pretty Traceback)
通过颜色、缩进、样式使异常输出更加结构化,易于阅读。
2、上下文代码片段(Context Preview)
在错误发生处显示周围几行代码,帮助快速理解问题环境。
3、输出过滤(Path Filtering)
自动隐藏第三方库路径,聚焦项目代码。
4、样式与主题(Themes)
支持自定义颜色、缩进、代码高亮样式。
5、自动启用模式
只需 import pretty_errors 即可立即接管所有异常输出。
◆ ◆ ◆
应用举例
例 1:默认启用美化
foo()运行后得到清晰高亮的错误输出。
例 2:启用“短格式”以减少噪音
foo()例 3:显示更多代码上下文
foo()例 4:过滤掉虚拟环境路径
pretty_errors.blacklist("venv")例 5:自定义输出宽度
foo()◆ ◆ ◆
常用函数与类速览
pretty_errors.configure(**options)
配置全局异常美化格式。
参数(常用):
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)。
参数:
path:路径字符串或关键字。
返回:无。
pretty_errors.replace_stderr()
将标准错误输出替换为 pretty_errors 的输出格式。
参数:无。
返回:无。
pretty_errors.activate()
主动启用美化模式(与 import 效果相同)。
参数:无。
返回:无。
pretty_errors.debug()
启用调试模式,输出内部处理信息。
参数:无。
返回:无。
◆ ◆ ◆
补充说明
(1)pretty_errors 主要适合开发环境,不推荐在生产环境中直接启用。
(2)若需要与 logging/traceback 结合,可自定义 hook。
(3)与 rich.traceback 类似,但更轻量、更易配置。
(4)在 Jupyter 中可能不会直接生效,需要特殊配置或使用 rich 代替。
小结
pretty_errors 是一个轻量而实用的异常美化工具,能够显著提升 Python 错误输出的可读性。它通过颜色、缩进、路径过滤、上下文代码显示等方式,让调试体验更清晰、更高效。安装后只需引入即可自动生效,非常适合脚本调试、教学、命令行工具开发等场景。对于希望提升调试效率、减少阅读堆栈疲劳的 Python 开发者而言,pretty_errors 是一个值得长期使用的工具。
“点赞有美意,赞赏是鼓励”
热门跟贴