PrettyErrors 是一个精简 Python 错误信息的工具,特点是界面十分简洁友好。
它最显著的功能是支持在终端进行彩色输出,标注出文件栈踪迹,发现错误信息,过滤掉冗余信息,提取出关键部分,并且进行彩色标注,从而提高开发者的效率。
写代码本身就很不容易,特别是在几万行的代码中出现一个bug,一时半会找不到问题所在,这个时候,你一定很抓狂,很烦躁。特别是Python代码出错了,满屏幕大段大段的错误信息提示,想定位错误更是难上加难。
先来看看上面这段 traceback
- 只有一种颜色,无法像代码高亮那样,对肉眼实现太不友好了
- 无法直接显示报错的代码,排查问题慢人一步,效率太低
那有没有一种办法,可以解决这些问题呢?
当然有了,在 Python 中,没有什么问题是一个库解决不了的,别乱如麻的Python报错输出,一行代码让bug更清晰。
今天要介绍的这个库呢,叫做 pretty-errors ,从名字上就可以知道它的用途,是用来美化错误信息的。
下面介绍如何安装使用PrettyErrors。
通过这条命令你可以安装它
linuxmi@linuxmi:~/www.linuxmi.com$ pip install pretty_errors
或者
linuxmi@linuxmi:~/www.linuxmi.com$ pip3 install pretty-errors
全局配置
如果你想让你的每一个程序都能这样在报错时使其清晰易读,那么运行下面这这行命令配置全局可用。
linuxmi@linuxmi:~/www.linuxmi.com$ python3 -m pretty_errors
配置完成后,你再运行任何脚本,traceback 都会自动美化了。
取消全局配置
同样运行这个命令
linuxmi@linuxmi:~/www.linuxmi.com$ python3 -m pretty_errors
输入 C 即可清除全局配置。
单文件中使用
取消全局可用后,你可以根据自己需要,在你需要使用 pretty-errors 的脚本文件中导入 pretty_errors ,即可使用
import pretty_errors
但是这样,语法错误(SyntaxError)的格式就不能被美化。所以为了让美化更彻底,官方推荐你使用 python -m 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() 中的设置。
自定义配置示例
from pretty_errors import *
configure(filename_color=BRIGHT_BLUE) # 设置文件名为亮蓝色
def f():
return 1 / 0
if __name__ == "__main__":
f()
结语
总的来说,这个库功能非常强大,使用效果也特别酷炫,它就跟 PEP8 规范一样,没有它是可以,但是有了它会更好一样。对于某些想自定义错误输出场景的人,pretty_errors 会是一个不错的解决方案。