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

来源丨数据STUDIO

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

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

尽管很多读者可能认为 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 具有可插拔的并发模型,它允许在不同的线程中运行 Control channel 的处理过程;

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

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

深入至 debugger 的前端架构

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

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

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

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

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

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

进入已删除的单元格

在 JupterLab 中调试代码控制台

在 JupyterLab 中调试文件

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

同时调试多个笔记本

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

变量浏览器

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

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

VS Code 可视化 Debug 工具

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

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

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

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

Plotly 可视化

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行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

  • 1).卧槽!Pdf转Word用Python轻松搞定!

  • 2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃

  • 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密

  • 4).80行代码!用Python做一个哆来A梦分身

  • 5).你必须掌握的20个python代码,短小精悍,用处无穷

  • 6).30个Python奇淫技巧集

  • 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货

  • 8).再见Python!我要学Go了!2500字深度分析!

  • 9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

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

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

  1. python开发笔记软件_图解Python编程神器Jupyter Notebook

    大家好!在本门课程中我会给大家详细讲解鼎鼎大名的Python编程神器Jupyter Notebook.Jupyter Notebook看似简单,实际上功能非常强大,而且有很多实用的小技巧.遗憾的是,目 ...

  2. 视频教程-图解Python编程神器Jupyter Notebook-Python

    图解Python编程神器Jupyter Notebook 曾就职于联想.HTC.阿里巴巴,担任高级软件开发工程师.Team Leader.技术主管.高级技术培训讲师.丰富的Python.Swift.K ...

  3. python的编程工具spider_7款Python开发神器,拿走不谢

    在人工智能开启的时代,Python作为人工智能的首选语言,前景可以预见.因此学习Python的人越来越多.今天,快快小编准备给大家介绍7款Python开发神器,欢迎收藏转发! 1.Micro Pyth ...

  4. 从菜鸟到高手!全攻略,手把手教你把VS Code变成Python开发神器!

    Visual Studio Code 是一款功能强大.可扩展且轻量级的代码编辑器,经过多年的发展,已经成为 Python 社区的首选代码编辑器之一 下面我们将学习如何安装 Visual Studio ...

  5. python ckeditor上传图片400错误_又一款python开发神器

    优秀的python开发工具有很多,比如pycharm,spder,ipython,jupyter以及很多编辑器的插件等.但是如果利用python来做数据分析的话,要是有一款类似Rstudio的工具就好 ...

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

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

  7. Python 开发桌面应用竟然如此简单

    这是「进击的Coder」的第 496 篇技术分享 作者:星安果 来源:AirPython " 阅读本文大概需要 7 分钟. " 1. 前言 我们都知道 Python 可以用来开发桌 ...

  8. python django开发工具_Django+python 开发神器

    Python(派森)英文名称:穿山甲.它是一种面向对象的用途非常广泛的编程语 言,具有非常清晰的语法特点,适用于多种操作系统,可以在Windows和Unix这样的系统中运行.python的语法灵活,模 ...

  9. 太强了~Python 开发桌面小工具,让代码替我们干重复的工作

    决定写这篇文章的初衷是来源于一位小伙伴的问题,关于"如何根据数据源用 Python 自动生成透视表",这个问题背后有个非常好的解决思路,让代码替我们做重复的工作,从而减轻工作量,减 ...

最新文章

  1. JS函数式编程【译】5.2 函子 (Functors)
  2. 后台开发之IO缓冲区管理
  3. PowerEdge M915 – 戴尔打出的又一记虚拟化重拳
  4. modelsim-win64-10.4-se 破解(win7实验成功)(其他操作系统也可参考,大同小异)
  5. 前端的百度地图的api的使用
  6. mysql 10进制转2进制_Oracle 10进制转换2进制
  7. qt编译器5.12.3怎么一次性删除所有的断点
  8. 独家 | 李飞飞亲口跟我们说:离职Google是假新闻
  9. PHP操作tcpdf插件生成PDF
  10. AutoCAD VBA二次开发地形图多边形裁剪
  11. mysql反思范文_MySQL学习笔记(一)
  12. 《黑客与画家》-1 为什么书呆子不受欢迎?
  13. Photoshop-液化工具对人物的应用
  14. Centos7下的Openssl和CA
  15. Android与IOS的的兼容总结
  16. windows录屏html文件,windows怎么录屏带声音,简单高效的两种录制法
  17. 慕课网_《Redis入门》学习总结
  18. linux服务器使用搜狗输入法,linux下使用搜狗输入法皮肤(.ssf)(示例代码)
  19. linux 段错误分析
  20. 498.Diagonal Traverse-M

热门文章

  1. 你在加密市场能走多远 取决于你的思维认知
  2. passive-interface 总结整理
  3. 如何把普通的五比四的照片做成5寸照片
  4. 2021年度IT吃瓜指南
  5. Unity3D合成大西瓜
  6. 小王利用计算机设计了一个计算程序,小王利用计算机设计了一个计算程序,输入和输出的数据如下表:那么,当输入数据是8时,输出的数据是[]A.B.C.D.-七年级数学...
  7. 考研数据结构之线性表(1.7)——练习题之分离单链表的奇数偶数(C表示)
  8. Set集合的基本使用
  9. vue2升级到 Vue3的异同(入门须知)
  10. 【模式匹配】之 —— Sunday算法