Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合做完整的 Python 项目。然而,因为交互式操作,很少会有开发者想到用 Jupyter 做 Debug。
尽管很多读者可能认为 Jupyter 用来做展示和小型试验就足够了,Debug 并没有太大的需求,但弥补上 Jupyter 缺失的一环,能让它更好用,未来 Debug 也会作为默认模式。
Jupyter 这种工具虽然有很好的交互性能,但其也明白,对于大型代码库,最好还是用传统的 IDE 比较靠谱。因此为了弥补这一缺陷,Jupyter 项目在过去几年也希望通过 JupyterLab 来加强对大型代码库的处理过程。
然而,JupyterLab 还是有一大缺陷,它不能通过可视化的方式进行 Debug,这限制了进一步的调试。这几天,Jupyter 团队表示,经过几个月的开发,他们很高兴能第一次发布 Jupyter 可视化 Debugger。
虽然这只是第一版,但目前已经可以设置常见的断点 Debug,查看各种变量、执行模块等信息。
新工具的用法也很简单,很常见的 Debug 方式差不多。如果读者想要安装这个新工具,那么首先你需要为 JupyterLab 装前端插件:
jupyter labextension install @jupyterlab/debugger
至于后端 Kernel,Jupyter 团队表示目前 kernel 需要实现 Jupyter Debug Protocol,因此暂时只能用 xeus-Python:
conda install xeus-Python -c conda-forge
只要装好前端与后端,我们就可以直接使用了。开发者还提供了 Debug 的线上体验版,不需要安装任何东西就能体验。
在线 Debug 环境:
https://hub.gke.mybinder.org/user/jupyterlab-debugger-hwxovlw4/lab/tree/examples/index.ipynb
Xeus-Python 是第一个支持 Jupyter Debug 的内核
Xeus 是 Jupyter kernel protocol 的 C++ 实现,它本身并不是一个内核,而是能帮助构建内核的库。当开发者希望构建 Python、Lua 等拥有 C、C++ API 的语言内核时,它非常有用。
目前已经有一些内核使用 xeus 进行开发,Xeus-Python 内核是我们做 Python 开发时可选的一个内核,它去年就已经有发布。Xeus-Python 之所以被 Jupyter 团队选为第一个实现 Debug 的内核,主要是它有以下两大优势:
短期内,xeus-Python 还会有进一步提升的计划,例如添加 Ipython 魔术方法,优化 xeus-Python 的 PyPI 等。
JupyterLab 的 debugger 扩展针对用户对 IDE 的使用习惯提供了通常性功能:
当使用 Jupyter 笔记本时,执行的状态保存在内核中。但是如果我们执行了一个 cell,然后又把整个 cell 删了,那么用户在 Dubug 的时候希望运行到那些代码又怎么办?
如下动图所示,该插件支持特定用例,并能在只读模式下查看以前执行过的 cell。
[版权声明] :本文系网友分享,仅以非商业性的交流和科研为目的,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网( friends@stuch.cn )联系!我们将协调给予处理。转载授权码:确权中,请原作者尽快与我们取得联系,阅读原文(请登录)..