自动为未捕获的异常回溯上色
colored-traceback的Python项目详细描述
自动为python的未捕获异常回溯上色。
这个是给那些在 终点站。关于每帧两行的方法 它们很难进行视觉扫描。
比较这个:
Traceback (most recent call last): File "./workflowy.py", line 525, in <module> main() File "./workflowy.py", line 37, in main projects = cli.load_json(args, input_is_pipe) File "./workflowy.py", line 153, in load_json return json.load(sys.stdin) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 290, in load **kw) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads return _default_decoder.decode(s) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 365, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 383, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded
对此:
Traceback(mostrecentcalllast):File"./workflowy.py",line525,in<module>main()File"./workflowy.py",line37,inmainprojects=cli.load_json(args,input_is_pipe)File"./workflowy.py",line153,inload_jsonreturnjson.load(sys.stdin)File"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py",line290,inload**kw)File"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py",line338,inloadsreturn_default_decoder.decode(s)File"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py",line365,indecodeobj,end=self.raw_decode(s,idx=_w(s,0).end())File"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py",line383,inraw_decoderaiseValueError("No JSON object could be decoded")ValueError:NoJSONobjectcouldbedecoded
安装
通过PIP:
pip install colored-traceback
或直接:
git clone http://www.github.com/staticshock/colored-traceback.py python setup.py install
在没有真正支持ansi转义序列的windows上,有一个 对colorama的附加依赖性
pip install colorama
用法
彩色回溯可以作为一个模块执行:
python -m colored_traceback somefile.py
彩色回溯在脚本中甚至直接在 翻译回复标准用法会给输出着色,除非 重定向到管道:
importcolored_tracebackcolored_traceback.add_hook()
如果要保留颜色,即使在stderr正在管道中,在 始终=真参数:
importcolored_tracebackcolored_traceback.add_hook(always=True)
还有一些方便的进口产品,它们的足迹可以减少到 一行:
# Same as add_hook()importcolored_traceback.auto# Same as add_hook(always=True)importcolored_traceback.always
不言而喻,您可能希望捕获到 可选包装:
try:importcolored_traceback.autoexceptImportError:pass