0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

以后Jupyter也能做可视化Debug了

数据分析与开发 来源:数据分析与开发 作者:机器之心 2021-01-06 16:09 次阅读

以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核。

Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合做完整的 Python 项目。然而,因为交互式操作,很少会有开发者想到用 Jupyter 做 Debug。

e3ea0002-4fca-11eb-8b86-12bb97331649.png

尽管很多读者可能认为 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。

e47d0f5a-4fca-11eb-8b86-12bb97331649.gif

进入已删除的单元格

e4b09ad2-4fca-11eb-8b86-12bb97331649.gif

在 JupterLab 中调试代码控制台

e4dfb1d2-4fca-11eb-8b86-12bb97331649.gif

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

e54a3958-4fca-11eb-8b86-12bb97331649.gif

同时调试多个笔记本 可以使用树状查看器和表状查看器检查变量:

e5808a1c-4fca-11eb-8b86-12bb97331649.gif

变量浏览器 JupyterLab 的 debugger 插件目标是与任何支持调试内核一并使用。通过 Debug Adapter Protocol,debugger 插件可以抽象出针对于特定语言的功能,并为用户提供匹配的调试界面。 并且团队计划在 2020 年对 debugger 的体验进行重大改进,例如在变量浏览器中支持丰富的渲染,在 UI 中支持条件断点。 VS Code 可视化 Debug 工具 Debug 是条漫漫长路,不久前机器之心也介绍过一款 VS Code 实时可视化 debug 工具,在此也可以作为参考。

以一种更优雅、更简洁的 debug 方式帮用户找到代码问题所在是未来优化的方向之一,而之前所介绍这款可视化 debug 能够快速展示数据结构。 从效果层面上看此款工具更加惊艳,而且跟以往传统 debug 方式的展示形式完全不同,比如将断点设置为第 32 行定义双向链表,随后一行行运行代码就会在右图展现出对应的数据结构图。

e5c7adfc-4fca-11eb-8b86-12bb97331649.gif

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

e61fce60-4fca-11eb-8b86-12bb97331649.gif

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

e6902dcc-4fca-11eb-8b86-12bb97331649.png

Plotly 可视化

e70b4b2e-4fca-11eb-8b86-12bb97331649.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/

责任编辑:xj

原文标题:神器 jupyter,终于来了!

文章出处:【微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    55

    文章

    4764

    浏览量

    84353
  • 代码编辑器
    +关注

    关注

    0

    文章

    14

    浏览量

    6017

原文标题:神器 jupyter,终于来了!

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    大屏数据可视化 开源

    在当今信息爆炸的时代,数据已经成为各个行业决策制定和业务发展的关键。为了更直观、准确地理解和利用海量数据, 大屏数据可视化 成为一种强大的工具。通过将数据以图表、图形等形式展示在大屏幕上,不仅
    的头像 发表于 06-27 16:06 338次阅读
    大屏数据<b class='flag-5'>可视化</b> 开源

    如何实现园区大屏可视化

    如何实现园区大屏可视化? 1.建立孪生模型:首先需要建立园区的孪生模型,即一个数字的虚拟模型,反映园区的实际情况、结构、设备、人员等信息。这个模型可以通过传感器、监控设备、GIS 数据等实时获取和更新,确保与实际情况保持
    的头像 发表于 06-19 15:39 350次阅读
    如何实现园区大屏<b class='flag-5'>可视化</b>?

    态势数据可视化技术有哪些

    智慧华盛恒辉态势数据可视化技术是一种将数据以图形、图像、动画等视觉形式展现出来的技术,特别是在处理和分析态势数据时,该技术能够将复杂的数据转化为直观、易于理解的视觉表现。以下是态势数据可视化技术
    的头像 发表于 06-11 15:47 322次阅读

    智慧大屏是如何实现数据可视化的?

    智慧大屏,作为数据可视化的重要载体,已在城市管理、交通监控、商业运营等领域广泛应用。本文旨在阐述智慧大屏实现数据可视化的关键技术和方法,包括数据源管理、数据处理、视觉编码、用户界面与交互设计等。
    的头像 发表于 06-04 15:02 514次阅读
    智慧大屏是如何实现数据<b class='flag-5'>可视化</b>的?

    大屏数据可视化的作用和意义

    大屏数据可视化是指利用大屏幕设备展示数据信息,通过图表、图像、动画等视觉手段将数据呈现出来,以便用户能够直观、清晰地理解数据背后的含义和关联。在信息化时代,数据已经成为企业决策和运营的重要依托,而
    的头像 发表于 06-03 17:56 591次阅读

    大屏数据可视化是什么?运用了什么技术

    大屏数据可视化 是一种利用大屏幕设备展示数据可视化结果的技术,旨在以更生动、直观的方式呈现数据信息。这种数据展示方式广泛应用于各种场景,包括会议、展览、监控中心等,旨在帮助用户更快速、准确地理
    的头像 发表于 05-24 15:35 768次阅读

    数据可视化:企业数字建设效果的呈现

    数据可视化即通过图表的形式将数据的内在信息有逻辑性地呈现给用户,使用户更容易发现数据中蕴藏的规律,找出问题,进而做出决策;另一方面,数据可视化项目也是一张重要的名片,是企业数字建设效果的呈现。本文
    的头像 发表于 04-29 10:18 390次阅读
    数据<b class='flag-5'>可视化</b>:企业数字<b class='flag-5'>化</b>建设效果的呈现

    FUXA基于Web的过程可视化软件案例

    FUXA——基于Web的过程可视化软件
    发表于 04-24 18:32 0次下载

    态势数据可视化技术有哪些

    确,计算方法不实用,可视化效果不直观等技术问题,设计并实现基于地理信息系统,网络拓扑图,攻击路径等的安全态势可视化分析系统方法, 通过可视化技术将安全态势数据以多视图,多角度,多层次
    的头像 发表于 04-22 15:17 356次阅读

    态势可视化系统软件

    智慧华盛恒辉态势可视化是一种对特定环境中一段时间内的持续动作和改变的目标实体的感知、认知和理解,并最终以直观、灵活、逼真的方式展示总体状态的技术。 智慧华盛恒辉可视化技术是战场环境表达的最重要形式
    的头像 发表于 04-22 14:48 275次阅读

    数据可视化的未来:2024 年及以后

    随着我们进入数据驱动决策的下一个时代,数据可视化领域即将迎来一场变革性革命。随着信息的不断涌入和数据的复杂性不断增加,传统的可视化方法需要帮助跟上步伐。人工智能、机器学习和增强现实等新兴技术正在为新一代实时数据可视化工具铺平道路
    的头像 发表于 01-25 11:52 455次阅读

    迎接数智时代:数字经济引领可视化转型

    数字经济和数字转型正推动企业进行变革,可视化和数智化成为关键驱动力。NFC技术为企业提供更便捷、更安全的数据传输途径,加速数字转型。企业应打造
    的头像 发表于 01-15 17:59 482次阅读
    迎接数智时代:数字经济引领<b class='flag-5'>可视化</b>转型

    可视化全程追溯,可视化资产管理系统

    管理系统以智能技术为核心,融合实时监控、数据分析与可视化展示等功能,为企业提供完整的资产管理解决方案。它能够有效地追踪和管理企业的固定资产、设备和库存物资,帮助企业实现资产的全生
    的头像 发表于 01-11 13:54 433次阅读
    <b class='flag-5'>可视化</b>全程追溯,<b class='flag-5'>可视化</b>资产管理系统

    一键生成可视化图表/大屏 这13款数据可视化工具很强大

    选择何种数据可视化工具。那么你来对地方,往下看。 什么是数据可视化? 数据可视化是创建数据集趋势、模式和关键见解的可视化表示的过程。数据
    的头像 发表于 12-19 17:27 5016次阅读
    一键生成<b class='flag-5'>可视化</b>图表/大屏 这13款数据<b class='flag-5'>可视化</b>工具很强大

    数字时代:关于数据可视化的定义/优势及示例

    毫无意义和难以管理。这就是数据可视化发挥关键作用的地方。 数据可视化的定义 “数据可视化”的定义是广泛的。但大多数定义侧重于数据与计算机技术之间的联系,以便将数据转换为视觉形式。不管如何,数据的
    的头像 发表于 12-12 18:04 793次阅读
    数字时代:关于数据<b class='flag-5'>可视化</b>的定义/优势及示例