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

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

3天内不再提示

神器jupyter的优势和使用教程

人工智能与大数据技术 来源:机器之心 作者:机器之心 2021-02-05 09:36 次阅读

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,查看各种变量、执行模块等信息

f8a5f6da-6001-11eb-8b86-12bb97331649.gif

新工具的用法也很简单,很常见的 Debug 方式差不多。如果读者想要安装这个新工具,那么首先你需要为 JupyterLab 装前端插件:

jupyterlabextensioninstall@jupyterlab/debugger 至于后端 Kernel,Jupyter 团队表示目前 kernel 需要实现 Jupyter Debug Protocol,因此暂时只能用xeus-python: condainstallxeus-python-cconda-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。

fc432e52-6001-11eb-8b86-12bb97331649.gif

进入已删除的单元格

fce4d2c0-6001-11eb-8b86-12bb97331649.gif

在 JupterLab 中调试代码控制台

fd226522-6001-11eb-8b86-12bb97331649.gif

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

fd88cc5e-6001-11eb-8b86-12bb97331649.gif

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

fe2392fc-6001-11eb-8b86-12bb97331649.gif

变量浏览器 JupyterLab 的 debugger 插件目标是与任何支持调试内核一并使用。通过 Debug Adapter Protocol,debugger 插件可以抽象出针对于特定语言的功能,并为用户提供匹配的调试界面。 并且团队计划在 2020 年对 debugger 的体验进行重大改进,例如在变量浏览器中支持丰富的渲染,在 UI 中支持条件断点。 VS Code 可视化 Debug 工具 Debug 是条漫漫长路,不久前机器之心也介绍过一款 VS Code 实时可视化 debug 工具,在此也可以作为参考。以一种更优雅、更简洁的 debug 方式帮用户找到代码问题所在是未来优化的方向之一,而之前所介绍这款可视化 debug 能够快速展示数据结构。 从效果层面上看此款工具更加惊艳,而且跟以往传统 debug 方式的展示形式完全不同,比如将断点设置为第 32 行定义双向链表,随后一行行运行代码就会在右图展现出对应的数据结构图。

fe9ecf30-6001-11eb-8b86-12bb97331649.gif

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

ff32eb16-6001-11eb-8b86-12bb97331649.gif

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

Plotly 可视化

AST 可视化 不过这款 VS Code 的 debug 工具开发者正在探讨其对 Python 的支持,而对于 Python 的完美支持会使得该项目更加便捷且适用。 而对于 debug 来说,不管最终是采用的是 print()大法,或是善用 assert 语句,亦或是以直接设置断点,包括各种新推出的 debug 工具。单从辅助工具角度层面看,只要它能够提高工作效率,不管是哪款 debug 工具,找到适合你的那便是值得一试

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

文章出处:【微信公众号:人工智能与大数据技术】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    30

    文章

    4553

    浏览量

    66665
  • 编辑器
    +关注

    关注

    1

    文章

    787

    浏览量

    30126
  • python
    +关注

    关注

    51

    文章

    4667

    浏览量

    83443

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

文章出处:【微信号:TheBigData1024,微信公众号:人工智能与大数据技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    介绍一款基于java的渗透测试神器-CobaltStrike

    Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器
    的头像 发表于 01-16 09:16 270次阅读
    介绍一款基于java的渗透测试<b class='flag-5'>神器</b>-CobaltStrike

    共模电容:又一款EMC滤波神器

    共模电容:又一款EMC滤波神器?|深圳比创达电子(上)
    的头像 发表于 12-25 10:54 288次阅读
    共模电容:又一款EMC滤波<b class='flag-5'>神器</b>?

    共模电容:又一款EMC滤波神器?|深圳比创达电子(上)

    的不敏感性;c. 相较于贴片共模电感,又有着陶瓷贴片的可靠性方面的优势;d. 尺寸更小,有利于产品的小型化。综上所述,相信通过本文的描述,各位对共模电容:又一款EMC滤波神器(上)都有一定了解
    发表于 12-25 10:53

    【KV260视觉入门套件试用体验】PYNQ初次上手体验

    PYNQ 是 AMD 的一个开源项目,用于快速进行自适应计算平台的开发 。 使用Python语言和库,我们可以利用FPGA和ARM协同开发的优势来构建项目 PYNQ 可与 AMD Xilinx
    发表于 10-18 01:22

    什么是 Jupyter Notebook

    Jupyter Notebook 是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码、数学方程、可视化和 Markdown,其用途包括数据清理和转换、数值模拟、统计建模、机器学习
    的头像 发表于 10-16 11:15 1874次阅读
    什么是 <b class='flag-5'>Jupyter</b> Notebook

    【KV260视觉入门套件试用体验】+01.开箱及petalinux系统测试(zmj)

    cable to your local network with DHCP enabled \\\\\\\\ | to install packages and run Jupyter
    发表于 08-27 20:59

    防丢神器 Airtag 国产版

    Airtag是什么? AirTag是苹果公司设计的一款定位神器,它通过CR2032纽扣电池进行供电,即可实现长达1-2年的关键物品的定位、查找的功能。 按照苹果公司自己的话说—— 您“丢三落四这门
    发表于 08-24 14:56

    协议转换神器,从Modbus到多种总线协议,随心切换

    更多往期文章,请点击“  阅读原文  ”。 原文标题:协议转换神器,从Modbus到多种总线协议,随心切换 文章出处:【微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 08-02 11:45 392次阅读
    协议转换<b class='flag-5'>神器</b>,从Modbus到多种总线协议,随心切换

    Jupyter Notebook 7重磅发布,新增多个特性!

    Jupyter Notebook 7新增了来自JupyterLab的交互式调试器 (interactive debugger),它使您能够逐个代码单元格地执行代码,也可以设置断点并检查变量。
    的头像 发表于 08-01 15:01 828次阅读
    <b class='flag-5'>Jupyter</b> Notebook 7重磅发布,新增多个特性!

    如何判断Jupyter实例是否安全

    Jupyter 环境安全评估
    的头像 发表于 07-05 16:30 232次阅读
    如何判断<b class='flag-5'>Jupyter</b>实例是否安全

    无所不知的神器构建

    电子发烧友网站提供《无所不知的神器构建.zip》资料免费下载
    发表于 07-04 11:22 0次下载
    无所不知的<b class='flag-5'>神器</b>构建

    Linux下模拟网络时延和丢包神器介绍

    今天浩道跟大家分享推荐一款Linux用于模拟网络时延和丢包神器!有这些业务运维或测试场景的小伙伴,可以用起来了!
    发表于 07-02 14:07 1194次阅读
    Linux下模拟网络时延和丢包<b class='flag-5'>神器</b>介绍

    基于DS28S60的双向身份验证示例,使用Jupyter笔记本

    本应用笔记详细介绍了DS28S60与Jupyter笔记本配合使用进行双向认证的基本应用。它使用分步方法来演练设置设备和所有相关软件,创建用于通过 ECDHE 密钥交换加密数据的共享密钥,使用 AES-GCM 加密和解密数据,以及通过 ECDSA 签名生成和验证完成相互身份验证。
    的头像 发表于 06-16 11:39 475次阅读
    基于DS28S60的双向身份验证示例,使用<b class='flag-5'>Jupyter</b>笔记本

    PyTorch教程23.1之使用Jupyter笔记本

    电子发烧友网站提供《PyTorch教程23.1之使用Jupyter笔记本.pdf》资料免费下载
    发表于 06-06 09:23 0次下载
    PyTorch教程23.1之使用<b class='flag-5'>Jupyter</b>笔记本

    KiCad拼版神器KiKit的安装与使用

    本帖最后由 jf_32603368 于 2023-5-22 19:07 编辑 今天介绍一款KiCad的拼版神器:KiKit。KiCad没有自带的拼版工具,KiKit是一款相当便捷的插件
    发表于 05-22 19:07