一行代码,让你的 Python bug 与众不同

开发 后端
在 Python 中,没有什么问题是一个库解决不了的,别乱如麻的Python报错输出,一行代码让bug更清晰。

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 会是一个不错的解决方案。

责任编辑:庞桂玉 来源: Linux公社
相关推荐

2015-03-20 14:51:09

Testin云测

2024-03-08 12:20:25

Python代码

2011-06-03 14:10:31

SEO网页摘要

2013-07-30 15:24:53

App应用体验

2016-12-02 08:53:18

Python一行代码

2021-08-23 17:49:02

代码开发模型

2018-09-19 15:46:51

编程语言Python编译器

2021-11-02 16:25:41

Python代码技巧

2022-04-09 09:11:33

Python

2020-08-12 14:54:00

Python代码开发

2017-04-13 19:20:18

Python代码并行任务

2017-10-20 08:03:40

windows桌面资源

2020-08-19 10:30:25

代码Python多线程

2021-06-11 14:15:55

代码前端项目

2017-04-05 11:10:23

Javascript代码前端

2021-05-28 07:39:17

SQL代码操作

2020-07-20 09:20:48

代码geventPython

2017-10-26 13:40:11

Python一行代码

2020-02-19 15:02:23

代码开发工具

2020-08-24 08:25:48

Python开发工具
点赞
收藏

51CTO技术栈公众号