点击上方“编程派”,选择设为“设为星标”
优质文章,第一时间送达!
即使是 Python,报错时也令人头大。
看着这一堆乱麻,不知道是该怀疑人生,还是怀疑自己手残。
![6405f5ee58a603fef9e74617b9983ef7.png](https://i-blog.csdnimg.cn/blog_migrate/d6917549a43d08d03991396d41734b75.jpeg)
那么,Python 异常输出美化工具PrettyErrors了解一下?
只需一个 import,报错也能整齐划一,错误代码位置、错误原因清晰明了,一眼就能看清。debug 仿佛都没有那么痛苦了。
![9552123c9fe18a1ee4f4502628a4591c.png](https://i-blog.csdnimg.cn/blog_migrate/f1f0813a2c49fc3d8b3b1b54edef972a.jpeg)
一行代码简化报错
先来试试一个简单的错误。
def foo():
1/0
foo()
不使用 PrettyErrors 库,报错信息长这样:
![8d59ace1de1ef39a3f3c6cbc053f4f1c.png](https://i-blog.csdnimg.cn/blog_migrate/87c5f5aebf38e3dbe2e4b954cc6164cc.jpeg)
倒是能看清,就是这一长串红字十分丑陋。
让我们来 import 一下 pretty_errors。输出变成了这个样子:
![f78352dbdbe4291c43b27a504ccfe4ec.png](https://i-blog.csdnimg.cn/blog_migrate/933340ecf0f69327992e34d9db9499a5.jpeg)
是不是清晰简洁了许多?
还可以自定义颜色。
![e856d7dcf3d0c0fec63fcfb9d6949026.png](https://i-blog.csdnimg.cn/blog_migrate/882e7e22c3308e3b9ecdee84e11fc8b6.jpeg)
bug 少的时候,还不觉得有什么太大区别。当报错信息铺满一整页,美观不美观,对心灵的打击程度就完全不同了。
![826414bb927cb46059f6c49096924f60.png](https://i-blog.csdnimg.cn/blog_migrate/24f120a9b4ad29981022f5572e5c7f0a.jpeg)
使用指南
像 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 的过程添加几分美感~
项目地址:https://github.com/onelivesleft/PrettyErrors
出处:鱼羊@量子位
回复下方「关键词」,获取优质资源
回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版
回复关键词「入门资料」,立即获取主页君整理的 10 本 Python 入门书的电子版
回复关键词「m」,立即获取Python精选优质文章合集
回复关键词「book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~
题图:pexels,CC0 授权。