迁移指南#

本指南概述了主要(可能存在破坏性)更改,以及将 JupyterLite 从一个版本更新到另一个版本的步骤。

0.2.00.3.0#

扩展#

JupyterLite 0.3.0 基于 JupyterLab 4.1 和 Jupyter Notebook 7.1 包。

虽然预计不会出现重大更改,但这可能会影响您使用的扩展,因为它们可能依赖于 JupyterLab 4.1 和 Notebook 7.1 中添加的功能。

jupyterlite 元包#

在 JupyterLite 0.3.0 之前,安装 jupyterlite 元包也会通过对 jupyterlite-javascript-kernel 的依赖关系默认安装 JavaScript(Web Worker)内核。

现在已删除对 jupyterlite-javascript-kernel 的依赖关系,因此如果您想使用该内核,可能需要明确地将 jupyterlite-javascript-kernel 添加到您的构建依赖项中。

注意

作为 jupyterlite-javascript-kernel 的替代方案,您可能还想使用 Xeus JavaScript,它目前提供了更多功能,并且通常更易于使用。

注意

jupyterlite-javascript-kernel 现在已移至 jupyterlite-javascript-kernel 存储库。

服务工作者#

JupyterLite 使用服务工作者来使文件和笔记本对内核可见,以便用户可以通过笔记本中的代码对其进行操作。

在以前的版本中,服务工作者默认情况下启用了缓存,并且无法轻松禁用它。

但是,服务工作者缓存是内核访问文件时许多问题的原因,通常会给用户带来错误,他们必须清除缓存才能解决问题。

在 JupyterLite 0.3.0 中,服务工作者缓存默认情况下是**禁用的**,但如果需要,仍然可以启用它。

要启用服务工作者缓存,请将 enableServiceWorkerCache 选项添加到您的 jupyter-lite.json 文件中。例如

{
  "jupyter-lite-schema-version": 0,
  "jupyter-config-data": {
    "enableServiceWorkerCache": true
  }
}

0.1.00.2.0#

扩展#

JupyterLite 0.2.0 基于 JupyterLab 4 和 Jupyter Notebook 7 包。

JupyterLab 4 带有几个可能影响扩展的重大更改。

如果您在 JupyterLite 部署中使用 JupyterLab 3 扩展,则可能需要更新到与 JupyterLab 4 兼容的更新版本扩展。

注意

对于扩展作者,请查看 JupyterLab 文档中的 扩展迁移指南

Jupyter Notebook 7#

在 JupyterLite 0.1.x 中,笔记本界面由 RetroLab 提供。

在 JupyterLite 0.2.0 中,笔记本界面现在由 Jupyter Notebook 7 提供。

Jupyter Notebook 7 是 RetroLab 和 Classic Notebook 的继任者,基于 JupyterLab 组件。

这意味着 URL 也已更改,以与 Jupyter Notebook 7 提供的 URL 保持一致。

  • /retro/consoles -> /consoles

  • /retro/edit -> /edit

  • /retro/notebooks -> /notebooks

  • /retro/tree -> /tree

jupyterlite 元包#

在版本 0.1.x 中,安装 jupyterlite 元包会默认自动安装 Pyodide 内核,因为 jupyterlite 元包会依赖于 jupyterlite-pyodide-kernel

在版本 0.2.0 中,情况不再如此。您需要在构建环境中显式安装 jupyterlite-pyodide-kernel,以及 jupyterlite-core(提供 jupyter-lite CLI 的包)。

请参阅 添加内核的文档 以了解更多信息。

服务工作者#

服务工作者文件名已更改。在 0.1.0 中,它是 service-worker-[hash].js,其中 hash 由 webpack 计算,在 0.2.0 中,哈希值被移除,新文件名是 service-worker.js

API 更改#

jupyterlite-core#

  • Mathjax 附加组件已从 jupyterlite-core 包中删除。因此,jupyter-lite.json 中的 mathjaxConfigfullMathjaxUrl 选项可以删除,因为它们不再有任何作用。

    如果您想使用 Mathjax 2,可以安装 jupyterlab-mathjax2。有关更多信息,请参阅 jupyter-renderers 存储库。

    作为参考,请参阅 更新到 Mathjax 3 的 JupyterLab 拉取请求

@jupyterlite#

这些 API 更改仅在您在后续应用程序中重用 @jupyterlite 包时才相关。

  • IKernel 接口由 @jupyterlite/kernels 公开,它有一个新的 get 方法,用于通过 ID 检索正在运行的内核。

0.1.0b190.1.0b20#

jupyterlite-core#

通过 jupyterlite-core 包分发的静态资产不再包含 JavaScript 内核。

相反,JavaScript 内核现在通过单独的 jupyterlite-javascript-kernel 包分发。

如果您想在部署中包含 JavaScript 内核,您需要先在构建 JupyterLite 站点之前安装它。例如,使用

python -m pip install jupyterlite-javascript-kernel

或者将其添加到 LiteBuildConfig/federated_extensions 配置项中。

目前,jupyterlite 包仍然通过对 jupyterlite-javascript-kernel 的依赖关系包含 JavaScript 内核。但这可能会在将来的版本中发生变化。

我们建议您直接使用 jupyterlite-core 包进行部署,并显式添加更多内核,例如 jupyterlite-pyodide-kerneljupyterlite-javascript-kernel

0.1.0b180.1.0b19#

jupyterlite-core#

此版本除了现有的 jupyterlite 包之外,还引入了新的 jupyterlite-core 包。

jupyterlite-core 包提供了构建 JupyterLite 网站 CLI 扩展点 的核心功能。目前它只包含一个在 Web Worker 中运行的 JavaScript 内核。如果您想在部署中包含 Python 内核,您需要先安装它,然后再构建 JupyterLite 网站。例如,使用

python -m pip install jupyterlite-pyodide-kernel

或者将其添加到 LiteBuildConfig/federated_extensions 配置项中。

jupyterlite 包目前提供了一些垫片以及 Pyodide 内核,以更好地兼容现有的部署。

我们建议您开始使用 jupyterlite-core 包进行部署,并另外安装 Python 内核,例如 jupyterlite-pyodide-kernel 或 Xeus 内核。

jupyterlite-pyodide-kernel#

Pyodide 内核已移至其自己的仓库:jupyterlite/pyodide-kernel

目前,为了方便起见,它仍然默认与 jupyterlite 一起安装,但它不是 jupyterlite-core 的一部分。

此更改的结果是 pyolite JavaScript 包的重命名

  • @jupyterlite/pyolite-kernel -> @jupyterlite/pyodide-kernel

  • @jupyterlite/pyolite-kernel-extension -> @jupyterlite/pyodide-kernel-extension

如果您正在使用 litePluginSettings,请确保更新您的配置。

0.1.0b170.1.0b18#

JavaScript 内核现在在 Web Worker 中运行,而不是在 IFrame 中运行,以简化 JupyterLite 中默认内核的运行方式。

这可能会影响扩展基本 JavaScriptKernel 的自定义内核作者,例如 https://github.com/jupyterlite/p5-kernel。

此更改是在以下 PR 中完成的:#711

0.1.0b160.1.0b17#

使用 PipliteAddon.piplite_urls 而不是 LiteBuildConfig.piplite_urls#

如果您正在配置 piplite_urls 选项(如 https://python.org/en/latest/howto/python/wheels.html 中所述)以在构建时提供其他轮子,则此配置选项已从 LiteBuildConfig.piplite_urls 移动到 PipliteAddon.piplite_urls

如果使用 jupyter_lite_build.json 文件,则配置应如下所示

{
  "PipliteAddon": {
    "piplite_urls": ["url-to-wheel1", "url-to-wheel2", "..."]
  }
}

此更改是在以下 PR 中完成的:#934