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 是一个值得长期使用的工具。

打开网易新闻 查看精彩图片

点赞有美意,赞赏是鼓励