An alternative way to debug your Python code

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

  1. Install rich
pip <span>install</span> <span>-U</span> rich
pip <span>install</span> <span>-U</span> rich
pip install -U rich

Enter fullscreen mode Exit fullscreen mode

  1. 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

原文链接:An alternative way to debug your Python code

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
Change your thoughts and you change your world.
改变你的思想,你就能改变自己的命运
评论 抢沙发

请登录后发表评论

    暂无评论内容