python中显示了一个实用程序,它可以修复可怕的回溯,使它们更具可读性。
tbvaccine的Python项目详细描述
tbvaccine是一个很好地打印python回溯的实用程序。它是自动的 突出你关心的线条,淡化你不关心的线条 回溯中的各种元素,以便于分析。
这是一些截图。这是之前的:
这是后面的:
如果在代码中添加钩子或调用tbvaccine,它还可以打印所有 每个堆栈帧中的变量。也就是说,它会变成这样:
进入这个:
安装
要安装,请使用pip:
pip install tbvaccine
你完了!
全局使用
你可以让tbvaccine把它自己全部插入你的系统,然后把它的触角伸进去 你所有的图书馆,像一个可爱,有用的cthulhu。这样,每一条Python 在你的系统中回溯会很漂亮。只需设置tbvaccine环境 变量为1,就完成了。
例如,对于bash:
export TBVACCINE=1
或鱼:
set -x TBVACCINE=1
用作命令行实用程序
tbvaccine可以通过多种方式从命令行使用。:
python -m tbvaccine myscript.py
或者从你想看的节目中插入stderr:
./myscript.py 2>&1 | tbvaccine
所有的回溯都会很漂亮!
用作Python库
使用tbvaccine作为python库有多种方法。
初始化如下:
from tbvaccine import TBVaccine tbv = TBVaccine( code_dir="/my/code/dir", isolate=True )
code_dir标记我们编码的目录。目录下的文件 在回溯中出现将突出显示。如果不通过,电流 将使用由os.getcwd()返回的目录。
如果isolate是False,则所有行都是彩色的,code_dir是 忽略。
如果show_vars是False,则不会在每个堆栈中打印变量 框架。
在except块中使用它:
from tbvaccine import TBVaccine try: some_stuff() except: print(TBVaccine().format_exc())
要使其成为打印回溯的默认方式,请使用add_hook()(其中 也接受TBVaccine类所做的任何参数:
import tbvaccine tbvaccine.add_hook(isolate=False) 1 / 0
砰!瞬间漂亮的回溯。
日志集成
你可以像这样将tbvaccine与日志集成:
class TbVaccineFormatter(logging.Formatter): def formatException(self, exc_info): return TBVaccine(isolate=True).format_exc() sh = logging.StreamHandler() sh.setFormatter(TbVaccineFormatter('[%(levelname)s] %(asctime)s : %(message)s', '%Y-%m-%d %H:%M:%S')) logger.addHandler(sh)
结语
这个库还是很新的,如果有什么地方没有,请提供补丁 按计划工作,也请告诉你的朋友!希望有一天 它将在python解释器中实现。
–斯塔夫罗斯