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

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

d057c130a08be9f3088794079eae0b42.png


 
点击上方“菜学Python”,选择“星标”公众号

超级无敌干货,第一时间送达!!!

9f3b70bfad539f479b8cdaa8b09f8ecd.jpeg

来源丨网络


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

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

1b2cd433e00adeeec594e20f0bec3c27.gif

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

为什么 Jupyter 需要 Debug?

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

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

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

3f00e3c068ebe4e554a7dda740a852ef.png

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

5ef825b054df0290603ac55900a290ae.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。

9e726a54306c9516db577c1a71f5d77c.gif
进入已删除的单元格
0a62636719beaa1ec35022c3a6c8cd82.gif
在 JupterLab 中调试代码控制台
346b1a4cd0f120c9347fecdb1b3b78bd.gif
在 JupyterLab 中调试文件

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

ed4620e973d82cf835b28e1f4c135846.gif
同时调试多个笔记本

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

b2d32f5516c09a6a5d711a945b1ada48.gif
变量浏览器

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

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

VS Code 可视化 Debug 工具

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

6bf063228e09789ac4d671e9509324d5.gif

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

d370fef39085a92fd680ca2a88934a83.gif

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

195f528954a89a1b957e96a33f619044.gif

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

8dc9fa0a762758852695ebba8807dc99.png
Plotly 可视化
ef0cff73e67c6eb32587403cea0cd79b.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 可视化调试—— JupyterLab 最新版本 debug 个人实践 可叹互联网之大,却难让初学 jupyterlab 的笔者找到一篇关于利用 jupyterlab 进行可视化调试的正确的中文入门教程,故作此文,附上个人成功实践,以供后来者参考。 阅读详情

相关推荐

jupyter:数据可视化基础(课前知识储备)

本文是为了记录三天的可视化训练营的结果整理的工作,要在jupyter用代码画出各种图像,首先的得做好以下的准备: 安装python3.0 安装Pycharm 2018.3 or 2019.3 安装Anaconda 继续安装所需要的环境: 打开Pycharm–setting–如下图选择 然后点击加号,点击下图的按钮之后 最后 粘贴https://pypi.tuna.tsinghua.ed...

qq_41439065的博客 3705

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

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

codingpy的博客 4010

HTPA 32x32d热成像传感器实战指南:从替代MLX90640到精准测温

本文为HTPA 32x32d热成像传感器提供了从硬件连接到精准测温的完整实战指南。针对MLX90640替代需求,详细解析了HTPA传感器的核心优势、IIC通信要点、EEPROM校准数据读取与解析、独特的块数据读取模式,并逐步拆解了五大温度补偿计算流程,旨在帮助开发者克服高开发门槛,实现稳定可靠的非接触式测温应用。

weixin_29279101的博客 317

jupyter能debug了,使用vscode的jupyter插件进行debug

前言 vscode的1.58版本发布了一项新功能,支持jupyter的debug了。个人感觉在vscode上使用jupyter非常的舒服,jupyter本身是一个网页版的应用,每次启用是都得打开一个网页,但是在vscode上,直接创建一个.ipynb后缀的文件就可以了,启动也非常迅速。 下面将阐述如何在vscode的jupyter上进行debug。 最近vscode更新的1.58版本支持在jupyter上进行debug,其官方文档介绍如下: 简单来说就是把"jupyter.experimental.deb

weixin_40603846的博客 1万+

基于 SquashFS 构建 Linux 可读写文件系统

嵌入式 Linux 启动过程 本文所描述的的 Linux Image 由 BootLoader、kernel、initrd、rootfs 组成,它们共同存在于一个可以启动的存储设备中(本文以 USB 为例)。组成架构如下: 图 1. 可启动 linux 镜像文件结构 各个模块的作用如下: Boot Loader:由 BIOS 加载,用于将后续的 Kernel 和 initrd 的装载到内存中 kernel:为 initrd 运行提供基础的运行环境 initrd:检测并加载各种驱动程序 ro

wzq2009的专栏 1174

抖音用户主页视频数据爬虫详解(点赞,收藏,分享等)

的包中有个max_cursor参数,请求载荷中也有一个这样的参数,每次请求的数据中max_cursor是下一个请求的载荷,,,同时has_more为1时候代表还能请求,0为不能请求,我们做如下判断。最后发现cookie很容易过期,批量爬取有点困难,,,,我们采用drissoinpage进行自动化获取。首先进行抓包分析,,,随便找个主页,f12,关键词搜索,发现这个包是以post开头。请你第一次运行先按0,进行登录(或者触发反爬的时候),登录完成之后,按1进行爬取,完整代码请在知识星球。

m0_74823507的博客 3433

Python爬虫数据分析实战:从零构建端到端数据洞察流水线

在数据驱动的时代,从海量信息中提取结构化洞察已成为一项核心能力。其基本原理是通过自动化工具,高效、合法地获取并处理原始数据,最终转化为有价值的决策依据。这项技术的核心价值在于构建一个稳定、可复用的数据工作流,将手动、重复的信息处理过程固化为自动化流水线,从而显著提升效率与可靠性。在应用场景上,它广泛服务于内容追踪、市场分析、舆情监控和决策支持等领域。本文聚焦于Python爬虫与数据分析的工程实践,深入探讨如何通过requests、BeautifulSoup、Pandas等工具链,结合异常处理、数据清洗与可视

weixin_34269583的博客 362

一文学会VOS2009对接网关指定走某个落地网关

介绍:  在我们日常使用VOS2009/3000的过程中,肯定会有很多落地网关与对接网关,并且某些时候还需要某些对接网关指定去走某个落地网关或者某些落地网关,从而实现比较精准的控制对接网关与落地网关的关系,下面就演示下在VOS2009/3000中如何配置某个对接网关指定走某个或者多个落地网关。 实现步骤:  VOS2009可以通过添加固定前缀的方式来指定对接网关走某个落地网关。 比如:  r1对接网关在被叫改写规则里面填写*:a*  r2对接网关在被叫改写规则里填写*:b* 1.登录VOS客户端 2.进入

非著名运维的博客 1963

Jupyter notebook调试:设置断点运行

jupyter中的简单断点调试

weixin_62528784的博客 1566

第14.8章 高翔博士最新开源框架Lightning-LM源码解读(八):位姿平滑器PoseSmoother深度剖析,从原理到代码实现

本文深度解析了高翔博士开源框架Lightning-LM中的位姿平滑器PoseSmoother模块。该模块通过设置平滑因子,在保证位姿准确性的同时减少突变,使位姿变化更平稳。文章详细讲解了模块功能、数据流程和核心代码实现,包括构造函数、拷贝构造函数以及关键的PushDRPose和PushPose函数。重点分析了位姿平滑算法原理,涉及运动有效性校验、位姿队列维护和平滑因子调节等核心机制。此外还介绍了相关C++语法(如显式构造函数、默认拷贝构造)和优化方向。本解析为SLAM学习者提供了位姿平滑处理的实用实现范例。

行知SLAM 607

OpenClaw实战-行政与HR必备:AI驱动的办公自动化

智能会议纪要自动生成会议时间智能协调自动提醒和跟进简历智能筛选和匹配度分析面试安排自动化入职办理流程化通知公告一键发布发票识别和报销辅助资产管理数字化让AI处理繁杂的事务性工作,让您有更多时间专注于更有价值的战略和管理任务。

gaoxiang_120的专栏 220

jupyter Debug 方案

Jupyter 如何Debug

优快云_now的博客 1685

rk3506上移植lvgl应用

本文介绍在RK3506开发板上移植和运行LVGL图形库的方法。

m0_60805802的博客 1165

在jupyter notebook中debug

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

zrz233的博客 2648

Sigrity Power Tree如何进行直流压降仿真分析操作指导

Sigrity Power Tree模式可以用于前仿真,在没有layout文件的情况下对电源进行直流压降仿真分析,用于评估原理图设计以及器件选型是否合理。Model:设置为Equal Current,设置为等电源模型,意思该负载每个电源pin都是等电流的。Current:设置每个负载的电流,U30为3A,U3-U6各为1A。Nominal Current:设置能够承载的最大电流,设置为10A。Upper/ Lower Tol:设置为压降范围为5%Output Current:设置输出电流为10A。

weixin_54787054的博客 733

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Jupyter Notebook如何调试?JupyterLab作为DeBug调试工具及调试教程

引言 xeus-python是2020年新出的Jupyter notebook调试工具,参考机器之心的文章首款 Jupyter 官方可视化 Debug 工具,JupyterLab 未来可默认支持 Debug 安装过程 安装JupyterLab 前端插件 jupyter labextension install @jupyterlab/debugger 安装xeus-python作为后端kernel conda install xeus-python -c conda-forge 调试教程 只要装好前端与

BetterBench的博客 4万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

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

2401_86168842的博客 1242

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

机器学习与数学原理的必备宝典——jupyter lab的可视化调试安装

jupyter调试的重要性说明一、开始安装python二、安装jupyter(jupyterlab也会同时安装)打开jupyter看看安装成功没有三、正式安装jupyterlab可视化调试器没有conda,只有pip的安装。 说明 前言:我会使用一个全新的环境(windows10的虚拟机,里面就是刚刚装的系统)进行安装。 在此说明一下:安装jupyter是不需要特意跑去安装什么Anaconda的(本人亲试有效)。我还亲自去自己安装Anaconda这个东西(在此之前我已经安装过python3.9版本了,但是

liuyunye的博客 8425

VSCode Jupyter 断点调试方法(新)

自从vscode出了支持jupyter notebook的功能之后,我就再也没有傻傻的用浏览器开过jupyter(问就是vscode好看)。但一直以来jupyter notebook的一个问题是,只能以单元为单位运行,而不能像单个py文件一样进行逐行或者断点调试,这无疑是不方便的。 不过vscode去年的某几次更新解决了这个问题,但是断点调试有点隐蔽,因此记录一下。 如下图所示,vscode中的notebook打开后是这样的。可以在左侧添加断点,但是点击左上角的小三角运行时,会发现断点不起作用,仍然会执行完

正善有的博客 1万+

【2023最新版】PyCharm配置 Jupyter Notebook详解(启动、设置密码、测试等)

本文主要介绍了如何在PyCharm中配置Jupyter Notebook,包括启动Jupyter Notebook服务器、配置Jupyter服务器和设置密码登录的步骤。最后测试Jupyter Notebook的功能,包括在PyCharm中新建文件和运行代码。

天地玄黄 魑魅魍魉 风花雪月 商角徵羽 5万+

Jupyter是否可以进行debug?

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

Kp0fS的草稿纸 3109

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

以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核。 Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合做完整的 Python 项目。然而,因为交互式操作,很少会有开发者想到用 Jupyter 做 Debug。 尽管很多读者可能认为 Jupyter 用来做展示和小型试验就足够了,Debug 并没有太大的需求,但弥

python588的博客 315

python配置-配置jupyterlab-debugger

安装jupyter-debugger (此板块的博客仅记录自己的学习过程) 需要了解的是jupyterlab-debugger只是一个环境,不会覆盖掉原来的jupyter版本,所以使用需要activate 安装好anaconda,如果要指定自定义的工作目录,按自定义jupyter工作目录的提示操作 安装jupyterlab-debugger: 打开anaconda prompt 运行下面这段命令 conda create -n jupyterlab-debugger -c https://mirrors

qq_41752985的博客 1588

jupyter debug终极大法

使用alt+F8 别再想其他的了。。。

Kp0fS的草稿纸 786

jupyter pycharm 调试(debug)

在最新版的pycharm中,对于jupyter book的支持越来越好了,并且可以调试,官方教程在此:https://www.jetbrains.com/help/pycharm/running-jupyter-notebook-cells.html 但是有点坑的是以点击的地方有些坑,需要点击最前面的位置,或者press Ctrl+F8. Line breakpoint ...

只想买把蝴蝶knife 2110
上一篇: 好家伙,公司服务器直接热崩掉了!
下一篇: 冲上热搜!华为30岁以下员工仅占28%,35 岁危机谣言不攻自破
菜鸟学Python
博客等级 码龄9年 8088粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值