【AMAD】stackprint -- 为Python加入利于调试的traceback信息
简介
为Python加入利于调试的traceback信息。

动机
Python抛出异常时,会显示一些traceback信息。但是,一些时候这些信息并没有很多作用,不足以让你确定问题出现的原因。
这也是你大多数时候使用debugger的原因,你需要知道哪些代码运行,相关的变量当时是什么值...
作用
stackprint1并不是sentry2这种完整的错误监控系统,它只是为Python提供一个改良版的crash信息。
作者说,有时候他会使用这个工具来代替debugger。但是大多数时候,这个工具的作用是代码在别处运行,异常只会被记录到错误日志中的时候,可以帮助稍后判断问题原因。
而且,可以为traceback信息加入彩色。
用法
可以将单个项目的python traceback全局替换.
比如在项目的
__init__.py中调用set_excepthook()import stackprint
stackprint.set_excepthook(style='color')
可以指定的异常设置.
在
except块中调用show()和format()try:
something()
except:
# 捕获当前的异常,打印traceback到stderr
stackprint.show()
# ...将traceback转换成字符串
traceback = stackprint.format()
logger.error(traceback)
热度分析
这个Repo的首个commit日期是2018.9.2。截止到2019.5.2日,这个Repo获得了695star, 15fork.
源码分析
这个库的源代码满满的C风格,很多的函数定义。实现的原理应该是应用了编译原理,tokenize之类的,以我现在的水平很难看懂。
个人评分
| 类型 | 评分 |
|---|---|
| 实用性 | ⭐️⭐️⭐️⭐️ |
| 易用性 | ⭐️⭐️⭐️⭐️ |
| 有趣性 | ⭐️⭐️⭐️ |
| 代码质量 | ⭐️⭐️⭐️⭐️ |
【AMAD】stackprint -- 为Python加入利于调试的traceback信息的更多相关文章
- [转] python程序的调试方法
qi09 原文 python程序的调试方法 本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序 源码例子 例如,有模拟税收计算的程序: #!/usr/bin/python de ...
- [置顶] 如何在Python IDLE中调试Python代码?
好久没有用Python了,居然忘记了怎么在Python IDLE中调试Python代码.百度了一下,然后还是写下来吧,以免以后又忘记了. 1. Set break point in the sourc ...
- Python异常和调试.md
异常捕获 try 基本概念 我们使用try except来捕获异常,python的try except有几个特点: 不管函数内部嵌套几层,只要在try的范围内就可以被捕获.这句话的意思是一个函数被tr ...
- Python帮助函数调试函数 用于获取对象的属性及属性值
Python帮助函数调试函数 用于获取对象的属性及属性值 刚接触Python,上篇 <Python入门>第一个Python Web程序--简单的Web服务器 中调试非常不方便,不知道对象详 ...
- linux下面升级 Python版本并修改yum属性信息
最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- Python 抓取网页并提取信息(程序详解)
最近因项目需要用到python处理网页,因此学习相关知识.下面程序使用python抓取网页并提取信息,具体内容如下: #---------------------------------------- ...
- python使用post登陆电子科大信息门户并保存登陆后页面
python使用post登陆电子科大信息门户并保存登陆后页面 作者:vpoet mail:vpoet_sir@163.com #coding=utf-8 import HTMLParser impor ...
- Python标准库09 当前进程信息 (部分os包)
原文:Python标准库09 当前进程信息 (部分os包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们在Linux的概念 ...
随机推荐
- Ubuntu 16.04安装docker详细步骤
1. 卸载之前的旧版本 sudo apt-get remove docker docker-engine docker-ce docker.io 2. 更新apt包 sudo apt-get upda ...
- hdu 6088 Rikka with Rock-paper-scissors (2017 多校第五场 1004) 【组合数学 + 数论 + 模意义下的FFT】
题目链接 首先利用组合数学知识,枚举两人的总胜场数容易得到 这还不是卷积的形式,直接搞的话复杂度大概是O(n^2)的,肯定会TLE.但似乎和卷积有点像?想半天没想出来..多谢Q巨提醒,才知道可以用下面 ...
- 设置Portainer管理Docker并且开启https(简单方法)
1. 序言 Portainer是一个十分好用的docker图形化管理界面,可以很方便的查看容器状态,错误log等等. 2. 安装 安装portainer是十分简单的,只需要执行docker pull ...
- URAL 2036 Intersect Until You're Sick of It 形成点的个数 next_permutation()函数
A - Intersect Until You're Sick of It Time Limit:500MS Memory Limit:65536KB 64bit IO Format: ...
- mac使用sublime text3打开当前文件夹的终端
打开sublime text3,同时按住shift+command+p打开扩展列表, 选择Package Control: Install Pageage,回车. 在输入框输入: terminal,回 ...
- GitHub:Baidu
ylbtech-GitHub:Baidu 1.返回顶部 · duedge-recipes DuEdge百度边缘网络计算样例代码 edgeedge-computingduedge JavaScri ...
- ORA-39095: Dump file space has been exhausted
ORA-39095: Dump file space has been exhausted Table of Contents 1. 简述 2. 错误信息 3. 分析 4. 解决 5. 扩展 1 简述 ...
- css中设置table中的td内容自动换行
word-break:break-all和word-wrap:break-word都是能使其容器如DIV的内容自动换行. 它们的区别就在于: 1,word-break:break-all 例如div宽 ...
- 使用jQuery做简单的图片轮播效果
一.本特效主要用到的前端知识点 CSS中绝对定位(absolute)CSS实现垂直居中jQuery中简单的淡入淡出动画效果(fadeIn,fadeOut)定时器(setInterval,clear ...
- Redis Cluster 官方集群搭建指南
安装ruby环境因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,ruby安装需要指定openssl. 安装openssl $ wget https://www.open ...