“jupyternotebook”和“jupyterserver”有什么区别?

运行jupyter notebookjupyter server给我非常相似的结果,描述也非常相似。

? jupyter notebook -h
The Jupyter HTML Notebook.

This launches a Tornado based HTML Notebook Server that serves up an
HTML5/Javascript Notebook client.

? jupyter server -h
The Jupyter Server.

This launches a Tornado-based Jupyter Server.

有一些差异,比如server不加载,nbextensions但我不明白为什么有两个命令有这么多重叠。

供参考,这是各种模块的版本。

? jupyter --version
jupyter core     : 4.7.1
jupyter-notebook : 6.3.0
qtconsole        : 5.0.3
ipython          : 7.22.0
ipykernel        : 5.3.4
jupyter client   : 6.1.12
jupyter lab      : 3.0.11
nbconvert        : 6.0.7
ipywidgets       : 7.6.3
nbformat         : 5.1.3
traitlets        : 5.0.5

回答

Jupyter Notebook(notebook模块)包含以下两者:

  • 笔记本服务器(托管笔记本内容的 Web 应用程序的后端,代理与内核的交互,并通过例如在启动时打开互联网浏览器与操作系统交互;这部分通常是用 Python 编写的),和
  • 客户端(Web 应用程序的前端,例如 HTML 代码、javascript 和服务器上的一些额外 REST API 点)。

但是,因为现在有多个客户端(前端)为笔记本提供不同的 Web 应用程序:

  • Jupyter 笔记本
  • JupyterLab
  • 复古实验室
  • 联系
  • 在 Jupyter 项目之外开发的多个专有客户端

拆分所有这些使用的服务器组件是有意义的,这样 JupyterLab 就不必依赖于 notebook。这也意味着如果需要修复服务器组件,它可以独立于 Jupyter Notebook 发布周期快速发布(所有前端的用户都可以立即受益)。

因此,为了彻底拆分,旧的 Jupyter Notebook 被拆分为:

  • jupyter-server - 由 JuptyterLab、RetroLab、ntreact 改编的服务器
  • nbclassic - 作为 jupyter-server 扩展的 Jupyter Notebook

这意味着用户和开发人员的更改,其中一些已在“从笔记本迁移”文档中描述:

  • 特定于服务器而不是笔记本的选项被重命名 c.NotebookAppc.ServerApp(特定于笔记本的选项仍然存在c.NotebookApp
  • 服务器特定的配置现在存储在jupyter_server_config.py而不是jupyter_notebook_config.py.json版本相同)
  • 用户现在应该使用jupyter server extension而不是jupyter serverextension(注意额外的空间!)来列出、启用或禁用扩展
  • 服务器扩展需要将它们的文件放置在一个新位置:etc/jupyter/jupyter_server_config.d而不是etc/jupyter/jupyter_notebook_config.d(实际上,大多数更新为支持 jupyter 服务器的扩展现在都将文件放置在两个位置以与 notebook 向后兼容,但这将在未来发生变化)

需要注意的是,根据您启动 jupyter notebook 的方式,您将看到正在使用的不同服务器:

  • jupyter nbclassic (假设安装了 nbclassic)将使用新的 jupyter-server
  • jupyter notebook将使用旧notebook服务器
  • jupyter lab将使用jupyter-server从 JupyterLab 3.0 开始的新版本,除非在 JupyterHub/Binder 上运行,它可能仍在使用旧notebook服务器,具体取决于配置

这也意味着您在运行jupyter notebookvs时可能会看到不同的扩展jupyter nbclassic(取决于他们的开发人员是否更新了位置,以及他们是否决定要支持旧notebook服务器)。

创建nbclassic替换而不是从现有notebook包中删除服务器代码是为了确保向后兼容性,这就是为什么您仍然拥有 Tornado 服务器的两个副本(一个由 提供jupyter notebook,一个由 提供jupyter server)。为了使情况更简单,您可以删除notebook并安装nblcassic,但考虑到转换正在进行中,您可能需要手动调整一些内容。但是,这只是暂时的情况,因为计划jupyter server从 v7.0 开始迁移 Notebook 使用。

这现在看起来可能不方便,但是这一步确保了核心 Jupyter 基础架构在未来具有更高的可维护性,并将在以后极大地使用户和系统管理员受益。


以上是“jupyternotebook”和“jupyterserver”有什么区别?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>