当前位置: 首页 > 科技观察

Jupyter官方首款可视化调试工具JupyterLab,未来将默认支持Debug

时间:2023-03-14 08:09:58 科技观察

Jupyter将来也可以进行可视化调试。Jupyter团队发布了第一个Debug插件和内核。如何选择Python代码编辑器?PyCharm、VSCode、JupyterNotebook各有特色。Jupyter适合需要可视化的数据分析操作,PyCharm更适合完整的Python项目。但由于交互操作,很少有开发者想到使用Jupyter进行Debugging。虽然很多读者可能会觉得Jupyter对于演示和小实验来说已经足够了,Debug并没有太大的需求,但是弥补Jupyter中缺失的环节会让它更好用,而且以后也会将Debug作为默认模式.为什么Jupyter需要Debug?虽然像Jupyter这样的工具有很好的交互性能,但他们也明白,对于大型代码库,还是使用传统的IDE更好。因此,为了弥补这一不足,Jupyter项目在过去几年也希望通过JupyterLab加强对大型代码库的处理。但是JupyterLab还有一个很大的缺陷,就是不能可视化调试,限制了进一步的调试。这几天,Jupyter团队表示,经过数月的开发,他们很高兴首次发布JupyterVisualDebugger。虽然这只是第一个版本,但是已经可以设置常用断点Debug,查看各种变量,执行模块等信息。新工具的使用也很简单,常用的Debug方法也差不多。如果读者想要安装这个新工具,首先需要安装JupyterLab的前端插件:jupyterlabextensioninstall@jupyterlab/debugger至于后端Kernel,Jupyter团队表示目前的内核需要实现JupyterDebugProtocol,所以暂时只有xeus-python:condainstallxeus-python-cconda-forge只要安装好前后端,我们就可以直接使用了。开发者还提供了Debug在线试用版,无需安装即可体验。在线Debug环境:https://hub.gke.mybinder.org/user/jupyterlab-debugger-hwxovlw4/lab/tree/examples/index.ipynbXeus-python:第一个支持JupyterDebug的内核Xeus是Jupyter内核协议C++实现,它本身不是内核,而是帮助构建内核的库。当开发人员想要构建具有C、C++API的Python、Lua等语言核心时,它非常有用。目前已经有部分内核是使用xeus开发的。Xeus-python内核是我们做Python开发时可选的内核。它于去年发布。Xeus-python之所以被Jupyter团队选为第一个实现Debug的内核,是因为它有以下两个优势:线程进程;Xeus-python拥有非常轻量级的代码库,迭代更新非常方便。短期内,xeus-python会有进一步的改进计划,比如加入Ipythonmagicmethods,优化xeus-python的PyPI等。IDE:带有资源管理器、无序列表、源代码预览的侧边栏,并允许直接导航到代码旁边的调用堆栈设置断点的功能(即在代码单元格和代码控制台中)JupyterNotebooks,执行状态保存在内核中。但是如果我们执行一个单元格,然后删除整个单元格,如果用户在调试时想要运行那些代码怎么办?如下面的动画所示,该插件支持特定用例,并提供以只读模式查看先前执行的单元格的能力。进入已删除的单元格在JupterLab中调试代码控制台在JupyterLab中调试文件可以在笔记本级别启用调试,用户可以在调试笔记本的同时在另一个笔记本上工作。同时调试多个笔记本可以使用树查看器和表格查看器检查变量:变量浏览器JupyterLab的调试器插件旨在与任何支持调试的内核一起使用。通过DebugAdapterProtocol,调试器插件可以抽象出特定于语言的特性,为用户提供匹配的调试接口。并且该团队计划在2020年对调试器体验进行重大改进,例如支持可变浏览器中的丰富渲染以及支持UI中的条件断点。VSCodeVisualDebugTool调试任重而道远。不久前,机器之心还推出了一款VSCode实时可视化调试工具,这里也可以作为参考。使用更优雅简洁的调试方式帮助用户发现代码问题是未来优化的方向之一,前面介绍的可视化调试可以快速展示数据结构。从效果上看,这个工具就更神奇了,完全不同于以往传统调试方式的显示形式。例如,将断点设置到第32行,定义一个双向链表,然后逐行运行代码,显示对应的数据结构图。同时会根据数据结构以树形、表格、曲线、图形等不同方式展示,同时内置其他可定制的可视化调节器,您可以选择更简单的——根据不同的加工对象了解可视化方法。比如图表可视化、Plotly可视化、Tree可视化、网格可视化、文本可视化等等。PlotlyvisualizesAST可视化,不过这个VSCode调试工具的开发者正在讨论它对Python的支持,对Python的完美支持会让项目更加方便和适用。至于调试,不管是用print()方法,还是用好assert语句,还是直接下断点,包括各种新推出的调试工具。单从辅助工具来看,只要能提高工作效率,无论是哪种调试工具,都值得一试,找到适合自己的。