让编程就像写小说,这样的Jupyter你值得拥有

全文共1670字,预计学习时长7分钟


让编程就像写小说,这样的Jupyter你值得拥有

图源:datacamp


Notebooks一直是增进软件创意开发的工具。数据科学家用Jupyter记录他们的工作、探索和实验新算法,快速实践新方法并实时观察结果。当时机成熟时,软件开发人员就会用经典的IDE(集成开发环境),如VisualStudio Code和Pycharm,来将创意实现为库和框架。


那么,有没有一种方法可以将Jupyter转化成一个成熟的IDE,将最初概念变成功能强大且可重用的模块呢?


为了解决这个问题,包括QuantStack、Two Sigma、Bloomberg和fast.ai在内的几家机构开发了两个新工具:在Jupyter中添加了nbdev和可视化调试器。


让编程就像写小说,这样的Jupyter你值得拥有

文学编程与nbdev


1983年,Donald Knuth提出了一种新的编程范型,称为“文学编程”。


他说文学编程是“一种将编程语言与文档语言相结合的方法,从而使编写的程序比只用高级语言编写的程序更强大、更便捷、更易维护,而且可以说更有趣。主要思想是把程序当作文学作品,用人的语言而不是计算机的”。


让编程就像写小说,这样的Jupyter你值得拥有

图源:unsplash


Jeremy Howard和Sylvain Gugger对这个概念的设计非常着迷,去年年底他们推出了nbdev。该框架可以在熟悉的Jupyter Notebook环境中编写代码,探索和实验不同的方法,直到找到问题的有效解决方案。然后通过使用某些关键词,nbdev可以将实用功能提取到一个完整的python库中。


确切来说,nbdev通过添加以下支持来补充Jupyter:


· 根据最佳实践,从notebook中自动创建python模块

· 从代码中自动创建可搜索的超链接文档

· 将pip安装程序上传到PyPI

· 在标准IDE中编辑和导航代码

· 将所有更改同步回notebook

· 测试

· 连续集成

· 处理版本控制冲突


nbdev使软件开发员和数据科学家能够在Jupyter环境中,根据最佳实践,开发完整的python库。nbdev设置于PyPI上,要进行安装只需运行:


<code>pip install nbdev/<code>


对于可编辑安装,请使用以下命令:


<code>git clone https://github.com/fastai/nbdev
pip install -e nbdev/<code>
让编程就像写小说,这样的Jupyter你值得拥有

查缺补漏


虽然nbdev涵盖了在Jupyter内部进行类似IDE开发所需的大部分工具,但仍然缺少一个部分:可视化调试器。


让编程就像写小说,这样的Jupyter你值得拥有

图源:unsplash


因此,由多家机构的开发人员组成的团队,近日首次公开发布了Jupyter可视化调试器。该调试器具有人们期望的IDE调试器的大部分功能:


· 变量探测器、断点窗口列表和源预览

· 显示当前执行已停止位置的标志

· 可以浏览调用堆栈(下一行、插入、跳出等)

· 可以在兴趣线旁边直接设置断点窗口


为了利用这个新工具,需要一个在后端实现Jupyter调试协议的内核。第一步是安装这样的内核。到目前为止唯一可以实现的是xeus-python。要进行安装,只需运行:


<code>conda install xeus-python -c conda-forge/<code>


然后,运行Jupyter Lab,在侧边列上搜索“扩展管理器”并启用(如果已经启用可以跳过这一步)。


侧边列会出现一个新按钮。要安装调试器,只需转到新启用的“扩展管理器”按钮并搜索“调试器”扩展。


让编程就像写小说,这样的Jupyter你值得拥有

启用调试器


安装后,Jupyter Lab将要求执行构建,以包含最新的更改。点击接受,几秒钟后,就可以运行了。


为了测试调试器,我们创建了一个新的xpython notebook并编写了一个简单的函数。像往常一样运行函数并观察结果。若要启用调试器,请点击窗口右上方的关联按钮。


让编程就像写小说,这样的Jupyter你值得拥有

启用调试器


现在准备再次运行该函数。只是这一次,执行将在设置的断点窗口停止,这样就能够查看程序的状态。


让编程就像写小说,这样的Jupyter你值得拥有

调试代码


可以看到程序在断点窗口处停止。打开调试器面板,可以看到变量、断点窗口列表、调用堆栈导航和源代码。


Jupyter的新可视化调试器提供了期望的IDE调试器的所有功能。它仍在开发中,因此还有很多新功能可以期待。其开发者计划在2020年发布以下功能:


· 在变量探测器中可呈现丰富的mime类型

· 启用尽可能多的内核调试

· 用户界面中可支持条件断点窗口

· 从JupyterLab Voilà预览扩展中启用Voilà控制面板的调试


Jupyter Notebook一直是探索和实验代码的好方法。然而,软件开发人员通常会使用一个成熟的IDE,记录工作,以创建可用于生产的库。这不仅低效,而且会造成Jupyter价值的损失。


让编程就像写小说,这样的Jupyter你值得拥有

图源:unsplash


nbdev和可视化调试器是两个旨在缩小notebook和IDE之间差距的项目。此外,notebook可实现更好的文档,包括图表、图像和视频,有时还提供了更好的工具,如自动补全功能。


让编程就像写小说,这样的Jupyter你值得拥有!


让编程就像写小说,这样的Jupyter你值得拥有

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范


分享到:


相關文章: