Python中的pretty-errors库使用方法

发布时间:2020-05-22 16:51:26 作者:鸽子
来源:亿速云 阅读:476

当我们写的一个脚本或程序发生各种不可预知的异常时,如果我们没有进行捕获处理的时候,通常都会致使程序崩溃退出,并且会在终端打印出一堆密密麻麻的traceback堆栈信息来告诉我们,是哪个地方出了问题。

Python中的pretty-errors库使用方法

上面这段 traceback

那有没有一种办法,可以解决这些问题呢?

当然有了,在 Python 中,没有什么问题是一个库解决不了的,如果有,那就等你去开发这个库。

今天要介绍的这个库呢,叫做 pretty-errors ,从名字上就可以知道它的用途,是用来美化错误信息的。

通过这条命令你可以安装它

$ python3 -m pip install pretty-errors

1. 环境要求

由于使用了 pretty-errors 后,你的 traceback 信息输出,会有代码高亮那样的效果,因此当你在使用测试使用 pretty-error 时,请确保你使用的终端可以输出带有颜色的字体。

在 windows 上你可以使用 Powershell,cmder 等

在 Mac 上你可以使用自带的终端,或者安装一个更好用的 iTerm2

2. 效果对比


随便写一个没有使用 pretty-errors ,并且报错了的程序,是这样子的。

Python中的pretty-errors库使用方法

而使用了 pretty_errors 后,报错信息被美化成这样了。

Python中的pretty-errors库使用方法

是不是感觉清楚了不少,那种密密麻麻带来的焦虑感是不是都消失了呢?

当然这段代码少,你可能还没感受到,那就来看下 该项目在 Github上的一张效果对比图吧

Python中的pretty-errors库使用方法

3. 配置全局可用

可以看到使用了 pretty_errors 后,无非就是把过滤掉了一些干扰我们视线的无用信息,然后把有用的关键信息给我们高亮显示。

既然既然这样,那 pretty_errors 应该也能支持我们如何自定义我们选用什么样的颜色,怎么排版吧?

答案是显而易见的。

pretty_errors 和其他库不太一样,在一定程度上(如果你使用全局配置的话),它并不是开箱即用的,你在使用它之前可能需要做一下配置。

使用这一条命令,会让你进行配置,可以让你在该环境中运行其他脚本时的 traceback 输出都自动美化。

$ python3 -m pretty_errors

Python中的pretty-errors库使用方法

配置完成后,你再运行任何脚本,traceback 都会自动美化了。

不仅是在我的 iTerm 终端下

Python中的pretty-errors库使用方法

在 PyCharm 中也会

Python中的pretty-errors库使用方法

唯一的缺点就是,原先在 PyCharm 中的 traceback 可以直接点击 文件路径 直接跳转到对应错误文件代码行,而你如果是在 VSCode 可以使用 下面自定义配置的方案解决这个问题(下面会讲到,参数是:display_link)。

Python中的pretty-errors库使用方法

因此,有些情况下,你并不想设置 pretty_errors 全局可用。

那怎么取消之前的配置呢?

只需要再次输出 python -m pretty_errors,输出入 C 即可清除。

Python中的pretty-errors库使用方法

4. 单文件中使用

取消全局可用后,你可以根据自己需要,在你需要使用 pretty-errors 的脚本文件中导入pretty_errors,即可使用

import pretty_errors

就像这样

import pretty_errors

def foo():
    1/0

if __name__ == "__main__":
    foo()

值得一提的是,使用这种方式,若是你的脚本中,出现语法错误,则输出的异常信息还是按照之前的方式展示,并不会被美化。

因此,为了让美化更彻底,官方推荐你使用 python -m pretty_errors

5. 自定义设置

上面的例子里,我们使用的都是 pretty_errors 的默认美化格式,展示的信息并没有那么全。

比如

如果使用了 pretty_errors 导致异常信息有丢失,那还不如不使用 pretty_errors 呢。

不过,可以告诉你的是,pretty_errors 并没有你想象的那么简单。

它足够开放,支持自定义配置,可以由你选择你需要展示哪些信息,怎么展示?

这里举一个例子

import pretty_errors

# 【重点】进行配置
pretty_errors.configure(
    separator_character = '*',
    filename_display    = pretty_errors.FILENAME_EXTENDED,
    line_number_first   = True,
    display_link        = True,
    lines_before        = 5,
    lines_after         = 2,
    line_color          = pretty_errors.RED + '> ' + pretty_errors.default_config.line_color,
    code_color          = '  ' + pretty_errors.default_config.line_color,
)

# 原来的代码
def foo():
    1/0

if __name__ == "__main__":
    foo()

在你像上面这样使用 pretty_errrs.configure 进行配置时,抛出的的异常信息就变成这样了。

Python中的pretty-errors库使用方法

当然了,pretty_errors.configure()  还可以接收很多的参数,你可以根据你自己的需要进行配置。

5.1 设置颜色

在设置颜色的时候,pretty_errors 提供了一些常用的 颜色常量供你直接调取。

而每一种颜色,都相应的匹配的 BRIGHT_ 变体 和 _BACKGROUND 变体,

其中,_BACKGROUND 用于设置背景色,举个例子如下。

Python中的pretty-errors库使用方法

5.2 设置显示内容

5.3 设置怎么显示

推荐阅读:
  1. 用Python中turtle库circle()画圆函数的使用方法
  2. Python爬虫requests库的使用方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python pretty-errors

上一篇:C++简单单向链表实现

下一篇:mysql登录错误怎么处理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》