Rich Exception
Python developers use print(variable_foobar) or debugging feature of IDE such as VS Code to troubleshoot, but aren’t there any quicker alternative ways?
rich
package can make the exception traceback nicer; show the local variable values and extra lines of code.
How to use
- Install rich
pip <span>install</span> <span>-U</span> richpip <span>install</span> <span>-U</span> richpip install -U rich
Enter fullscreen mode Exit fullscreen mode
- Place the following code in the beginning of your main module.
<span>try</span><span>:</span><span>from</span> <span>rich.traceback</span> <span>import</span> <span>install</span><span>install</span><span>(</span><span>console</span><span>=</span><span>None</span><span>,</span><span>width</span><span>=</span><span>200</span><span>,</span><span>extra_lines</span><span>=</span><span>3</span><span>,</span><span>theme</span><span>=</span><span>None</span><span>,</span><span>word_wrap</span><span>=</span><span>True</span><span>,</span><span>show_locals</span><span>=</span><span>True</span><span>,</span><span>locals_max_length</span><span>=</span><span>10</span><span>,</span><span>locals_max_string</span><span>=</span><span>80</span><span>,</span><span>locals_hide_dunder</span><span>=</span><span>True</span><span>,</span><span>locals_hide_sunder</span><span>=</span><span>None</span><span>,</span><span>indent_guides</span><span>=</span><span>True</span><span>,</span><span>suppress</span><span>=</span><span>(),</span><span>max_frames</span><span>=</span><span>20</span><span>,</span><span>)</span><span>except</span> <span>Exception</span><span>:</span><span>print</span><span>(</span><span>"</span><span>Failed to set up rich traceback. Try: pip install -U rich</span><span>"</span><span>)</span><span>try</span><span>:</span> <span>from</span> <span>rich.traceback</span> <span>import</span> <span>install</span> <span>install</span><span>(</span> <span>console</span><span>=</span><span>None</span><span>,</span> <span>width</span><span>=</span><span>200</span><span>,</span> <span>extra_lines</span><span>=</span><span>3</span><span>,</span> <span>theme</span><span>=</span><span>None</span><span>,</span> <span>word_wrap</span><span>=</span><span>True</span><span>,</span> <span>show_locals</span><span>=</span><span>True</span><span>,</span> <span>locals_max_length</span><span>=</span><span>10</span><span>,</span> <span>locals_max_string</span><span>=</span><span>80</span><span>,</span> <span>locals_hide_dunder</span><span>=</span><span>True</span><span>,</span> <span>locals_hide_sunder</span><span>=</span><span>None</span><span>,</span> <span>indent_guides</span><span>=</span><span>True</span><span>,</span> <span>suppress</span><span>=</span><span>(),</span> <span>max_frames</span><span>=</span><span>20</span><span>,</span> <span>)</span> <span>except</span> <span>Exception</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>Failed to set up rich traceback. Try: pip install -U rich</span><span>"</span><span>)</span>try: from rich.traceback import install install( console=None, width=200, extra_lines=3, theme=None, word_wrap=True, show_locals=True, locals_max_length=10, locals_max_string=80, locals_hide_dunder=True, locals_hide_sunder=None, indent_guides=True, suppress=(), max_frames=20, ) except Exception: print("Failed to set up rich traceback. Try: pip install -U rich")
Enter fullscreen mode Exit fullscreen mode
Alternatively, to apply to all the codes you run, you may place the Python code in sitecustomize.py
file in site-packages
directory which can be found by running:
python <span>-c</span> <span>"import sys;print(sys.path)"</span>python <span>-c</span> <span>"import sys;print(sys.path)"</span>python -c "import sys;print(sys.path)"
Enter fullscreen mode Exit fullscreen mode
References
Regarding the options, see the documents:
https://rich.readthedocs.io/en/stable/traceback.html#traceback-handler
https://rich.readthedocs.io/en/stable/reference/traceback.html#rich.traceback.install
暂无评论内容