迁移指南#
本指南概述了主要(可能存在破坏性)更改,以及将 JupyterLite 从一个版本更新到另一个版本的步骤。
0.2.0
到 0.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.0
到 0.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
中的mathjaxConfig
和fullMathjaxUrl
选项可以删除,因为它们不再有任何作用。如果您想使用 Mathjax 2,可以安装
jupyterlab-mathjax2
。有关更多信息,请参阅 jupyter-renderers 存储库。作为参考,请参阅 更新到 Mathjax 3 的 JupyterLab 拉取请求
@jupyterlite
包#
这些 API 更改仅在您在后续应用程序中重用 @jupyterlite
包时才相关。
IKernel
接口由@jupyterlite/kernels
公开,它有一个新的get
方法,用于通过 ID 检索正在运行的内核。
0.1.0b19
到 0.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-kernel
或 jupyterlite-javascript-kernel
。
0.1.0b18
到 0.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.0b17
到 0.1.0b18
#
JavaScript 内核现在在 Web Worker 中运行,而不是在 IFrame 中运行,以简化 JupyterLite 中默认内核的运行方式。
这可能会影响扩展基本 JavaScriptKernel
的自定义内核作者,例如 https://github.com/jupyterlite/p5-kernel。
此更改是在以下 PR 中完成的:#711
0.1.0b16
到 0.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