添加内核#

默认情况下,用于创建 JupyterLite 网站的 jupyterlite-core 包不包含任何内核。

如果你使用 jupyter lite build 构建 JupyterLite 网站,并且没有安装任何内核,你可能会在打开应用程序时看到以下启动器

a screenshot showing a JupyterLite instance with no kernel available

要添加内核,你需要在用于构建网站的环境中安装相应的 Python 包。

选择内核#

由于 JupyterLite 内核在浏览器中运行,因此它们的功能有限。这意味着许多现有的 Jupyter 内核,例如 ipykernel,在 JupyterLite 中无法开箱即用。

但是,已经提供了一些针对不同语言的 JupyterLite 内核。

添加 Python 内核#

在 Python 的情况下,目前有两个选项

  • jupyterlite-pyodide-kernel:基于 Pyodide 的 Python 内核,Pyodide 是一个在浏览器中运行的 Python 发行版。

  • jupyterlite-xeus:JupyterLite 加载器,用于 Xeus 内核 (https://github.com/jupyterlite/xeus)。

jupyterlite-pyodide-kernel#

  • 基于 Pyodide

  • 使用 IPython 进行代码执行(访问 IPython 魔法命令,支持内联 Matplotlib 后端,等等)

  • 提供使用 piplite 动态安装包的方法(例如 await piplite.install("ipywidgets")

  • 不支持 使用 from time import sleep 进行休眠

  • 不支持 预安装包

查看专门的指南以配置 Pyodide 内核

jupyterlite-xeus#

jupyterlite-xeus 是一个加载器包,用于在 JupyterLite 中启用 基于 Xeus 的 内核。

特别是,它可以启用 xeus-python 在 JupyterLite 中使用。

Xeus Python

  • 使用 IPython 进行代码执行(访问 IPython 魔法命令,支持内联 Matplotlib 后端,等等)

  • 尚未提供 动态安装包的方法。目前正在开发一个用于 WebAssembly 的 mamba 包管理器,它将允许动态安装包。

  • 支持 使用 from time import sleep 进行休眠

  • 支持 通过提供一个定义运行时环境的 environment.yml 文件,从 emscripten-forgeconda-forge 预安装包

查看专门的指南以配置 Xeus Python 内核

注意

这两个 Python 内核非常相似,但仍然存在一些细微的差异。

未来计划将这两个实现融合。具体来说,这意味着能够在 Pyodide 内核中重用来自 emscripten-forgeconda-forge 的包。或者使 Pyodide 的一些功能更容易重用,以便它们也可以在 Xeus Python 内核中使用。Pyodide 和 Emscripten Forge 开发人员正在进行合作,以实现这一目标。

注意

这两个内核都在 Web Worker 中运行,以实现更好的隔离并避免阻塞主执行线程。但是,无法直接从工作线程内部操作 DOM。因此,在 Pyodide 中使用 js.document 模块访问页面上的元素可能会导致错误。

添加其他内核#

其他语言可以使用其他内核。您可以在 JupyterLite 网站中包含多个内核。

文档的 JupyterLite 内核 部分列出了一些内核。可能还有更多与 JupyterLite 兼容的第三方内核。

安装内核#

要在 JupyterLite 网站中包含内核,您需要在用于构建网站的环境中安装相应的 Python 包。

如果您使用 GitHub Pages 托管您的网站,就像在 快速入门指南 中一样,您可以使用 requirements.txt 文件指定要安装的内核。

例如,要安装 jupyterlite-pyodide-kernel 内核,您可以将以下行添加到 requirements.txt 文件中

# existing dependencices
# ...
# add the Pyodide kernel
jupyterlite-pyodide-kernel

或者,您也可以在构建环境中安装 jupyterlite-pyodide-kernel,例如使用

python -m pip install jupyterlite-pyodide-kernel

然后使用 jupyter lite build 重新构建网站。

内核现在应该在启动器中可用。

a screenshot showing a JupyterLite instance with the pyodide kernel available.

下一步#

现在您已经拥有一个带有内核的 JupyterLite 网站,您可以开始在浏览器中创建笔记本并运行代码。

如果您想进一步自定义 JupyterLite 环境,您可以阅读以下部分。