Jupyter notebook “jupyter笔记本”和“jupyter服务器”有什么区别?

Jupyter notebook “jupyter笔记本”和“jupyter服务器”有什么区别?,jupyter-notebook,jupyter,Jupyter Notebook,Jupyter,运行jupyter笔记本和jupyter服务器会得到非常相似的结果,描述也非常相似 ❯ 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

运行
jupyter笔记本
jupyter服务器
会得到非常相似的结果,描述也非常相似

❯ 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笔记本(
笔记本
模块)包含以下两部分:

  • 笔记本服务器(web应用程序的后端,承载笔记本内容,代理与内核的交互,并通过启动时打开internet浏览器等方式与操作系统交互;此部分通常用Python编写),以及
  • 客户端(web应用程序的前端,例如HTML代码、javascript和服务器上的一些额外RESTAPI点)
但是,由于现在有多个客户端(前端)为笔记本电脑提供不同的web应用程序:

  • Jupyter笔记本
  • 朱庇特实验室
  • 反应
  • 在Jupyter项目之外开发的多个专有客户
拆分所有这些服务器使用的服务器组件是有意义的,这样JupyterLab就不必依赖笔记本。这也意味着,如果需要对服务器组件进行修复,它可以独立于Jupyter笔记本的发布周期快速发布(所有frontents的用户都可以立即受益)

因此,为了使分手变得干净,旧的Jupyter笔记本被分为:

  • -由JuptyterLab、RetroLab和ntreact改编的服务器
  • -Jupyter笔记本作为Jupyter服务器扩展
这意味着对用户和开发人员的更改,其中一些已在文档中描述:

  • 特定于服务器而非笔记本电脑的选项已从
    c.NotebookApp
    重命名为
    c.ServerApp
    (特定于笔记本电脑的选项保留为
    c.NotebookApp
  • 服务器特定配置现在存储在
    jupyter\u server\u config.py
    中,而不是
    jupyter\u notebook\u config.py
    (与
    .json
    版本相同)
  • 用户现在应该使用
    jupyter服务器扩展
    而不是
    jupyter服务器扩展
    (注意额外的空间!)来列出、启用或禁用扩展
  • 服务器扩展需要将其文件放置在新位置:
    etc/jupyter/jupyter\u server\u config.d
    而不是
    etc/jupyter/jupyter\u notebook\u config.d
    (实际上,大多数为支持jupyter服务器而更新的扩展现在都将文件放置在这两个位置,以便与笔记本向后兼容,但这在将来会发生变化)
需要注意的是,根据您启动jupyter笔记本的方式,您将看到不同的服务器正在使用:

  • jupyter-nbclassic
    (假设安装了nbclassic)将使用新的
    jupyter服务器
  • jupyter笔记本
    将使用旧的
    笔记本
    服务器
  • jupyter lab
    将使用新的
    jupyter服务器
    从JupyterLab 3.0开始,除非在JupyterHub/Binder上运行,根据配置,它可能仍然使用旧的
    笔记本
    服务器
这也意味着您在运行
jupyter notebook
jupyter nbclassic
时可能会看到不同的扩展(这取决于他们的开发人员是否更新了位置,以及他们是否决定支持传统的
notebook
服务器)

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


现在看来这可能不太方便,但这一步骤确保了核心Jupyter基础设施在未来具有更高的可维护性,并将使用户和系统管理员以后受益匪浅。

感谢您提供了非常详细的答案!