太赞了!Python 开发神器Jupyter竟然还有可视化debug功能!

Jupyter如何开启Debug调试功能 断点调试是非常重要的功能,非常有助于解决开发中遇到的各种问题,掌握Debug技术,是每个程序员的基本功要求。由于需要对算子做远程调试功能,需要在jupyter中开启远程断点调试功能,特此记录。本文写作时用到的系统是Ubuntu22,Python的版本是3.8.如果要终止调试模式,再次点击右上角那个debug按钮即可。我本机安装的版本是:jupyter==1.0.0。以上就是对Jupyter断点调试的基本研究了。希望本文对大家有帮助。 阅读详情

(点击上方快速关注并设置为星标,一起学Python)

来源丨数据STUDIO

Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合做完整的 Python 项目。

然而,因为交互式操作,很少会有开发者想到用 Jupyter 做 Debug。

42d4fee8dd979346eaab71b74cf65628.gif

尽管很多读者可能认为 Jupyter 用来做展示和小型试验就足够了,Debug 并没有太大的需求,但弥补上 Jupyter 缺失的一环,能让它更好用,未来 Debug 也会作为默认模式。

为什么 Jupyter 需要 Debug?

Jupyter 这种工具虽然有很好的交互性能,但其也明白,对于大型代码库,最好还是用传统的 IDE 比较靠谱。

因此为了弥补这一缺陷,Jupyter 项目在过去几年也希望通过 JupyterLab 来加强对大型代码库的处理过程。

然而,JupyterLab 还是有一大缺陷,它不能通过可视化的方式进行 Debug,这限制了进一步的调试。这几天,Jupyter 团队表示,经过几个月的开发,他们很高兴能第一次发布 Jupyter 可视化 Debugger。

63c2ffeea329afffb6a81fb2ac06fde2.png

虽然这只是第一版,但目前已经可以设置常见的断点 Debug,查看各种变量、执行模块等信息。

b9adf0febe41154daed1983413e11858.gif

新工具的用法也很简单,很常见的 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 具有可插拔的并发模型,它允许在不同的线程中运行 Control channel 的处理过程;

  • Xeus-python 有非常轻量级的代码库,因此迭代与更新都非常方便。

短期内,xeus-python 还会有进一步提升的计划,例如添加 Ipython 魔术方法,优化 xeus-python 的 PyPI 等。

深入至 debugger 的前端架构

JupyterLab 的 debugger 扩展针对用户对 IDE 的使用习惯提供了通常性功能:

  • 带有资源管理器的侧边栏,无序列表,源预览以及允许导航至调用堆栈

  • 可直接在代码旁(即在代码单元以及代码控制台中)设置断点的功能

  • 可视化的标记,指示当前执行停止的位置

当使用 Jupyter 笔记本时,执行的状态保存在内核中。但是如果我们执行了一个 cell,然后又把整个 cell 删了,那么用户在 Dubug 的时候希望运行到那些代码又怎么办?

如下动图所示,该插件支持特定用例,并能在只读模式下查看以前执行过的 cell。

e077c17eccdb3dc85165e556c768970d.gif
进入已删除的单元格
5a3c47996f6137ca256547d19c8c94f9.gif
在 JupterLab 中调试代码控制台
fa13926cd39e897d6e27557db59e4518.gif
在 JupyterLab 中调试文件

可以在 notebook 级别上启用调试,用户可以在调试 notebook 的同时在另一个 notebook 上工作。

3b23df4bcbbd9fc5da0c22a6aaf88868.gif
同时调试多个笔记本

可以使用树状查看器和表状查看器检查变量:

02360bc41fad40eef8c0c979bd7672e2.gif
变量浏览器

JupyterLab 的 debugger 插件目标是与任何支持调试内核一并使用。通过 Debug Adapter Protocol,debugger 插件可以抽象出针对于特定语言的功能,并为用户提供匹配的调试界面。

并且团队计划在 2020 年对 debugger 的体验进行重大改进,例如在变量浏览器中支持丰富的渲染,在 UI 中支持条件断点。

VS Code 可视化 Debug 工具

Debug 是条漫漫长路,不久前介绍过一款 VS Code 实时可视化 debug 工具,在此也可以作为参考。以一种更优雅、更简洁的 debug 方式帮用户找到代码问题所在是未来优化的方向之一,而之前所介绍这款可视化 debug 能够快速展示数据结构。

52aba50634164fcae346b6a3e7446638.gif

从效果层面上看此款工具更加惊艳,而且跟以往传统 debug 方式的展示形式完全不同,比如将断点设置为第 32 行定义双向链表,随后一行行运行代码就会在右图展现出对应的数据结构图。

861e51ea82e6cf71426ebd150dc67a2e.gif

同时也会根据数据结构以不同的方式展现,例如树形、表格、曲线和图等。

782e141652fe1f9db2d973555200ced2.gif

同时还内置了其他可自定义的可视化调节器,可以根据面对不同的处理对象,可选择更易于理解的可视化方式。比如图表可视化,Plotly 可视化,Tree 可视化,网格可视化,文本可视化等等。

1b44e12172d144e35133f0db1e667c94.png
Plotly 可视化
d807ee9181074d02c2a00b1e54dcbc99.png
AST 可视化

不过这款 VS Code 的 debug 工具开发者正在探讨其对 Python 的支持,而对于 Python 的完美支持会使得该项目更加便捷且适用。

而对于 debug 来说,不管最终是采用的是 print() 大法,或是善用 assert 语句,亦或是以直接设置断点,包括各种新推出的 debug 工具。单从辅助工具角度层面看,只要它能够提高工作效率,不管是哪款 debug 工具,找到适合你的那便是值得一试。

参考链接:
https://blog.jupyter.org/a-visual-debugger-for-jupyter-914e61716559
https://www.reddit.com/r/MachineLearning/comments/foum00/n_jupyter_visual_debugger/


 

 

 

 

 

 
推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,看B站我的视频!

推荐!神器 Jupyter 的可视化 Debug~ 而对于 debug 来说,不管最终是采用的是 print() 大法,或是善用 assert 语句,亦或是以直接设置断点,包括各种新推出的 debug 工具。然而,JupyterLab 还是有一大缺陷,它不能通过可视化的方式进行 Debug,这限制了进一步的调试。尽管很多读者可能认为 Jupyter 用来做展示和小型试验就足够了,Debug 并没有太大的需求,但弥补上 Jupyter 缺失的一环,能让它更好用,未来 Debug 也会作为默认模式。新工具的用法也很简单,很常见的 Debug 方式差不多。 阅读详情

相关推荐

UE5游戏逆向实战:用FModel提取.pak文件中的3D模型(附Dumper-7避坑指南)

本文详细介绍了如何使用FModel工具从UE5游戏的.pak文件中提取3D模型,并提供了Dumper-7的避坑指南。内容涵盖FModel工具链配置、UE5特有的unversioned properties问题解决方案、Dumper-7实战流程以及模型后处理技巧,帮助开发者高效获取游戏资产。

weixin_30872499的博客 424

Jupyter是否可以进行debug?

坑:好像挺麻烦的,暂时先留个坑,以后再填吧

Kp0fS的草稿纸 3109

09、Flutter FFI Dart Native API

本文介绍了 Dart Native API 的基本用法,解决了 Dart 与 C 异步通讯的问题

eieihihi的专栏 4403

在jupyter notebook中debug

(next):执行当前行,并在当前函数内部移动到下一行。如果当前行是一个函数调用,它会直接跳过整个函数调用,而不会进入该函数内部。例如,b 10 将在第 10 行设置一个断点。(step):步进进入函数调用,如果当前行是一个函数调用,执行进入函数内部,允许逐行执行函数内部的代码。(print):打印变量的值。(continue):继续执行代码,直到遇到下一个断点或程序结束。(return):继续执行代码,直到当前函数返回。(list):显示当前位置附近的代码片段。(quit):退出调试器,停止程序执行。

zrz233的博客 2648

【Qt-4】QT基于qhttp-server搭建http服务器

QT搭建http服务器

WXG1011的博客 5715

复现HumanMAC(HumanMAC: Masked Motion Completion for Human Motion Prediction)

Human3.6M和HumanEva-I都放到data目录下(记得将data_multi_modal-20250320T022408Z-001.zip和humaneva_multi_modal-20250320T022412Z-001.zip解压缩并且分别重命名为data_multi_modal和humaneva_multi_modal)。生成的gif存放在inference目录下zero_shot_<INDEX>下的out目录下。新建一个data目录,将

qq_52643100的博客 835

重磅!首款 Jupyter 官方可视化 Debug 工具发布

点击上方“编程派”,选择设为“设为星标”优质文章,第一时间送达!本转自:机器之心以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布...

codingpy的博客 4010

从AP到ADSP:高通8650 AudioReach中GSL-Passthru-GPR的数据通路剖析

本文深入剖析了高通骁龙8650平台AudioReach架构中,音频数据从应用处理器(AP)到音频数字信号处理器(ADSP)的完整传输路径。重点解析了GSL(Graph Service Layer)如何封装命令,并通过Passthru驱动与GPR(Generic Packet Router)协同工作,实现跨处理器的高效、异步数据交换,揭示了现代手机复杂音频系统背后的核心通信机制。

cherry的博客 537

太赞了!Python 开发神器Jupyter竟然还有可视化debug功能

尽管很多读者可能认为 Jupyter 用来做展示和小型试验就足够了,Debug 并没有太大的需求,但弥补上 Jupyter 缺失的一环,能让它更好用,未来 Debug 也会作为默认模式。

SixStar_FL的博客 599

DaVinci Developer中枚举类型变量的创建与实战应用

本文详细介绍了在DaVinci Developer中创建和使用枚举类型变量的方法与实战应用。通过智能温控系统的案例,阐述了枚举类型在嵌入式开发中的核心价值,包括提升代码可读性、类型安全性和维护便捷性。文章还提供了枚举类型在状态机实现和多模块协同中的高级应用技巧,以及调试与优化的实用建议。

ik678901234的博客 512

YOLOv8改进,YOLOv8添加DCNv4可变性卷积(windows系统成功编译),全网最详细教程

DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1. 移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2. 优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DCNv4相比DCNv3显著加快了收敛速度,并且处理速度大幅提升,前向传播速度超过三倍。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 6474

真心有用!神器 Jupyter 的可视化 Debug!

而对于 debug 来说,不管最终是采用的是 print() 大法,或是善用 assert 语句,亦或是以直接设置断点,包括各种新推出的 debug 工具。尽管很多读者可能认为 Jupyter 用来做展示和小型试验就足够了,Debug 并没有太大的需求,但弥补上 Jupyter 缺失的一环,能让它更好用,未来 Debug 也会作为默认模式。短期内,xeus-python 还会有进一步提升的计划,例如添加 Ipython 魔术方法,优化 xeus-python 的 PyPI 等。

2401_86168842的博客 1174

【Jenkins】Jenkins :首次登录直接使用 admin 账户

目录 一、使用admin账户 二、修改admin用户密码 三、管理视图 一、使用admin账户 安装时,自定义安装,选择必要的插件安装,设置Jenkins的URL为: http://本机或服务器IP:8080 然后在创建第一个管理者界面,直接选择:使用admin 二、修改admin用户密码 进入:系统管理——管理用户——选中用户——点击设置图标——修改密码: 三、...

顾三殇 —— 博客空间(软件测试) 1万+

神器 Jupyter 的可视化 Debug!

来源丨数据STUDIOPython 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合做完整的 Python 项目。然而,因为交互式操作,很少会有开发者想到用 Jupyter 做 Debug。尽管很多读者可能认为 Jupyter 用来做展示和小型试验就足...

lsxxx2011的专栏 2450

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Jupyter官方神器:可视化 Debug 工具!

以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核。Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter N...

Datawhale 2559

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

神器 jupyter,终于来了!

点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 来源:机器之心 Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都...

机器学习算法与Python学习 9980

厉害了!Python编辑器界的神器 Jupyter ,推出官方可视化 Debug 工具!

机器之心报道机器之心编辑部以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核。Python 代码编辑器怎么选?PyCharm、VS ...

cainiao_python的博客 1715

推荐!神器 Jupyter!!

而对于 debug 来说,不管最终是采用的是 print() 大法,或是善用 assert 语句,亦或是以直接设置断点,包括各种新推出的 debug 工具。尽管很多读者可能认为 Jupyter 用来做展示和小型试验就足够了,Debug 并没有太大的需求,但弥补上 Jupyter 缺失的一环,能让它更好用,未来 Debug 也会作为默认模式。短期内,xeus-python 还会有进一步提升的计划,例如添加 Ipython 魔术方法,优化 xeus-python 的 PyPI 等。

java_121388的博客 1623

终于来了!Python 编辑神器 Jupyter ,推出首款官方可视化 Debug 工具!

转自:AI有道以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核。Python 代码编辑器怎么选?PyCharm、VS Code、J...

Python之禅的专栏 738

Jupyter 官方神器:可视化 Debug 工具!

\转自 | Datawhale以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核。Python 代码编辑器怎么选?PyCharm、VS...

zandaoguang的博客 503

python编辑器jupyter_厉害了!Python编辑器界的神器 Jupyter ,推出官方可视化 Debug 工具!...

本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载机器之心整理以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核。Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合做完整的 Pyth...

weixin_39701288的博客 98

debug工具_Jupyter 官方神器:可视化 Debug 工具!

\转自 | Datawhale以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核。Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合做完整的 Python 项目。然而,因为交互式操作,很少会有开发者想到用...

weixin_39781930的博客 104
上一篇: 7行代码让B站崩溃3小时
下一篇: 我用Python量化了1000万次散户操作,然后反着来,胜率竟然高达...?! | 你可以永远相信散户!【量化投资邢不行啊】...
菜鸟学Python
博客等级 码龄9年 8087粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值