Jupyter Notebook和JupyterLab有什么区别?

436

我是Jupyter Notebook的新手,Jupyter Notebook和JupyterLab之间有什么重要区别?请建议选择最佳选项,并指明将来应该使用哪一个。


6
截至2021年,还有一个与这个问题非常相关的变种:RetroLab,它是 JupyterLab 的一个官方混音版本,重新创建了 Jupyter Notebook 的外观和感觉,以便喜欢旧用户界面的用户更容易地迁移到现代工具。 - krassowski
8个回答

301

Jupyter Notebook是一个基于Web的交互式计算环境,用于创建Jupyter notebook文档。它支持多种语言,如Python (IPython),Julia,R等,主要用于数据分析、数据可视化和交互式探索性计算。

JupyterLab是下一代用户界面,包括notebook。它具有模块化结构,可以在同一窗口中打开多个notebook或文件(例如HTML、文本、Markdown等)作为标签页。它提供了更像IDE的体验。

对于初学者,我建议从Jupyter Notebook开始,因为它只包含一个文件浏览器和一个(notebook)编辑器视图,可能更容易使用。如果您想要更多功能,请切换到JupyterLab。JupyterLab提供了更多功能和增强的界面,可以通过扩展进行扩展: JupyterLab扩展(GitHub)


48
我认为 Jupyterlab 外观更加华丽,但功能较少。 - Chris
22
JupyterLab 不太适合展示数据可视化,例如 plotly。这是我转换到 Jupyter notebook 的原因。 - Pab
6
@Kaisar,您在JupyterLab中使用plotly时遇到了哪些挑战? - vestland
14
这并没有真正解释这些差异是什么。 - endolith
4
值得注意的是,最近发布的plotly版本增强了对Jupyterlab的支持:https://community.plotly.com/t/introducing-plotly-py-5-0-0-a-new-federated-jupyter-extension-icicle-charts-and-bar-chart-patterns/54039 - Olshansky
显示剩余7条评论

189

1 - 直接回答您的问题:

两者之间最重要的区别在于您应该立即开始使用JupyterLab,而不必担心Jupyter Notebook。 因为:

JupyterLab最终将取代经典的Jupyter Notebook。 在整个过渡期间,经典Notebook和JupyterLab都支持相同的Notebook文档格式。

从版本3.0开始,JupyterLab还配备了一个可视化调试器,让您可以交互式地设置断点、进入函数并检查变量。

2 - 反驳评论中关于plotly与JLab不兼容的各种说法:

JupyterLab是一个非常棒的工具,既可以构建plotly图表, 也可以内联启动完整的Dash应用程序,作为选项卡,并在浏览器中以外部方式运行。

3 - 您可能还想知道这个:

其他帖子建议初学者使用Jupyter Notebook (JN)可能比JupyterLab (JL)更容易使用。但我不太同意。

JL的一个巨大优势,也是JL和JN之间最重要的区别之一,就是您可以更轻松地运行单个线条甚至是高亮文本。我更喜欢使用键盘快捷键,并且分配快捷键非常简单。

而且,您可以在Python控制台中执行代码,这使得JL更加有趣。其他答案已经提到了这一点,但从某种程度上来说,JL可以被认为是运行Notebooks和更多的工具。因此,我使用JupyterLab的方式是将其设置为一个.ipynb文件、一个文件浏览器和一个像这样的Python控制台:

enter image description here

现在您可以使用以下工具:

  1. 查看文件、运行内核、命令、笔记本工具、打开标签页或扩展管理器
  2. 使用 Ctrl+Enter 等选项运行单元格
  3. 使用菜单选项或快捷键运行单个表达式、行或高亮文本
  4. 使用 Shift+Enter 直接在控制台中运行代码
  5. 在控制台中快速轻松地检查变量、数据框或绘图,而不会混乱您的笔记本输出。

4
感谢您在回答中提供的链接,这些对我非常有用。 - DataGuy
4
非常好的回答,控制台相对于在笔记本底部胡乱操作而言是一个很大的改进。 - Peter C
4
“不用担心Jupyter”的问题在于,博客文章和Stack Overflow上的文档解决的问题是针对Jupyter而非JupyterLab,这些解决方案有时可用于JupyterLab,但有时则不能使用。因此,了解两者之间的关系非常重要。 - Att Righ
3
@AttRigh 当然可以,但是原帖的问题也明确询问了“未来应该使用哪个”。我毫不犹豫地会推荐使用JupyterLab。 - vestland
3
另外,如果您安装了JupyterLab(pip install jupyterlab),它也会附带Jupyter Classic。因此,您最好安装JupyterLab,因为它两者都具备。 - wisbucky
显示剩余2条评论

119

目前(2019年中期),随着JupyterLab 1.0版本的发布,作为用户,我认为我们应该采用JupyterLab进行日常使用。而从JupyterLab官方文档可以看出:

JupyterLab当前版本适合于普通的日常使用。

并且

JupyterLab最终将取代传统的Jupyter Notebook。在这个过程中,相同的笔记本文档格式将被经典笔记本和JupyterLab同时支持。


请注意,JupyterLab具有可扩展的模块化架构。因此,在旧的时代,只有一个Jupyter Notebook,而现在有了JupyterLab(以及未来),Notebook只是JupyterLab核心应用程序之一(还有其他应用程序,如代码控制台、命令行终端文本编辑器)。


6
截至2021年中,现在已经没有任何理由不使用JupyterLab了。只需运行conda install jupyterlab指令即可,它将自动获取所需的notebook和其他工具。JupyterLab非常灵活,因为其底层的扩展框架提供了丰富的自定义和扩展能力。据我所知,Jupyter团队现在几乎全部致力于JupyterLab的开发。 - HAltos

11

(我正在使用Julia的JupyterLab)

首先,与我以前使用的版本相比,Jupyter Lab提供了更多的“主题”,这对眼睛很好,而且字体大小可以独立于浏览器进行更改,因此它更接近IDE的外观。我喜欢一些特定的设置,例如将“代码字体大小”更改为适合自己的大小,并保持界面字体大小不变。

伟大的主要特性是:

  • 拖放单元格,以便您可以轻松地重新排列代码
  • 只需单击鼠标即可折叠单元格,并留下小标记以提醒其位置

然而,最重要的是能够在选项卡和终端上具有分割视图的功能。如果您使用Emacs,则可能享受具有水平和垂直排列的多个缓冲区之一运行shell(终端)的体验,在jupyterlab中,这也可以做到,并且可以通过拖放来进行排列,而在Emacs中则需要使用一组命令。

(我认为对于那些没有使用过“笔记本电脑”原始版本的人,不会增加学习曲线。您可以直接进入这种IDE体验)


10

这篇答案展示了Python的视角。Jupyter支持除Python之外的各种语言。

Jupyter Notebook和Jupyterlab都是与浏览器兼容的交互式Python环境(即Python“ .ipynb”文件),您可以将代码的各个部分划分为不同的可执行单元格,以提高可读性。这两者在数据科学/科学计算领域都很受欢迎。

我建议您选择Jupyterlab,因为它具有优于Jupyter Notebook的优势:

  1. 在Jupyterlab中,您可以创建“ .py”文件、“ .ipynb”文件、打开终端等。Jupyter Notebook仅允许“ .ipynb”文件,同时为您提供选择“ Python 2”或“ Python 3”的选项。
  2. Jupyterlab可以在单个浏览器标签页中打开多个“ .ipynb”文件。而Jupyter Notebook每次都会创建一个新选项卡来打开新的“ .ipynb”文件。在各个选项卡之间切换是繁琐的,因此Jupyterlab在这里更有帮助。

我建议使用PIP安装Jupyterlab。

如果您无法在Windows系统上使用Jupyterlab打开“ .ipynb”文件,请按照以下步骤操作:

  1. 打开文件 --> 右键单击 --> 用...打开 --> 选择其他应用程序 --> 更多应用程序 --> 查找此计算机上的其他应用程序 --> 点击。
  2. 这将打开文件资源管理器窗口。现在进入您的Python安装文件夹。您应该看到Scripts文件夹。进入它。
  3. 一旦找到jupyter-lab.exe选择它,现在默认情况下它将打开PC上的.ipynb文件。

6
如果你在寻找JupyterLab笔记本电脑具有而传统Jupyter笔记本电脑没有的功能,请查看JupyterLab笔记本电脑文档。文档链接中有一个简单的视频展示了每个功能的使用方法。
JupyterLab笔记本电脑具有以下功能等等
  • 拖放单元格以重新排列笔记本电脑
  • 在不同的笔记本之间拖动单元格以快速复制内容(因为可以同时打开多个笔记本)
  • 创建单个笔记本的多个同步视图
  • 主题和自定义:暗色主题和增大代码字体大小

6
Jupyter Notebook 更新(2023年8月)

多个帖子提到 JupyterLab 最终将取代 Jupyter Notebook(有充分的理由,Jupyter 项目告诉了我们)。然而,情况已经发生了一些变化。Jupyter Notebook v7 是下一个得到完全支持的 Jupyter Notebook 版本。它基于 RetroLab(之前的 JupyterLab 经典版),这意味着它与 Jupyter Lab 具有相同的内部结构,但旨在保留经典 Jupyter Notebook 的体验。

关于 Jupyter Notebook 7 迁移指南的介绍:

有一段时间的计划是逐步停用传统笔记本,并不再对其进行维护。然而,传统笔记本仍被广泛使用,并且在许多场景中仍然是 Jupyter 的默认用户界面。许多用户和组织还没有能够切换到 JupyterLab。对于某些用户来说,JupyterLab 也可能是一个更复杂的环境,尤其对于初学者而言。

根据社区的反馈,在2021年底决定继续开发 Jupyter Notebook 应用并将其升级为 Notebook 7。[1]

笔记本 v7 将继续提供许多用户喜爱的以文档为中心的体验,其中每个独立的笔记本在单独的浏览器选项卡中打开,可见的工具和菜单都专注于当前打开的文档。无法保证对所有笔记本 v6 扩展的支持,但一些被认为对笔记本用户至关重要的扩展将被移植到笔记本 v7。在某些情况下,v7 将提供以前由扩展提供的内置功能,而其他情况下,扩展作者将发布适用于笔记本 v7 的更新版本。

笔记本 v7 的突出特点(因此有理由考虑从 v6 迁移到 v7)包括:调试器、实时协作、目录渲染、主题和暗色模式、国际化、可访问性改进、支持许多 JupyterLab 扩展以及在移动设备上的紧凑视图 [2]。

个人上仍在使用 Jupyter Notebook v6,然而这看起来是个好消息,我计划很快尝试 v7 :) 更多详细信息请参阅JEP 79迁移指南

注意:NbClassic扩展也适用于Notebook v7和JupyterLab。
对于那些升级到Notebook v7或JupyterLab但仍希望拥有Jupyter Notebook的“经典”外观和感觉的用户,可以使用NbClassic扩展。感谢@Wayne提供这个提示-请参阅他相关的答案new-jupyter-notebook-interface。
NbClassic在新的Jupyter Server后端上提供了经典界面,它可以与其他前端(如JupyterLab和Notebook 7)共存于同一安装中。NbClassic在一组新的URL端点下保留了自定义的经典笔记本体验,命名空间为nbclassic。[3]
参考资料:
[1] https://jupyter-notebook.readthedocs.io/en/latest/migrate_to_notebook7.html

[2] https://jupyter-notebook.readthedocs.io/en/latest/migrate_to_notebook7.html#new-features-in-notebook-7

[3] https://github.com/jupyter/nbclassic

[2] https://jupyter-notebook.readthedocs.io/en/latest/migrate_to_notebook7.html#new-features-in-notebook-7

[3] https://github.com/jupyter/nbclassic


0

我用Jupyter Notebook更加高效,而且我不需要花哨的东西。

自2015年以来,我每天都会在Python、R和Julia中使用Jupyter Notebook进行工作。我尝试过几次Jupyter Lab,但它感觉不对。时不时地,我会遇到一些小的障碍,这会影响我的思路和工作。我不需要这样,我的客户也不会为了“玩”编辑器的问题而付费。

因此,我暂时没有计划换成Jupyter Notebook,但如果开发停滞不前,我也有点担心。


你应该了解一下NbClassic以及Jupyter开发者打算如何维护它。点击这里获取更多信息和进一步资源链接。 - Wayne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接