使用 Voilà#

Voilà 可以用作独立应用程序,也可以用作 Jupyter 服务器扩展。本页介绍如何执行每项操作。在开始之前,请确保您按照 安装 Voilà 中的步骤操作。

以下部分介绍如何使用 Voilà。

作为独立应用程序#

Voilà 可用于运行、转换和将 Jupyter 笔记本作为独立应用程序提供服务。这可以通过命令行完成,使用以下模式

voila <path-to-notebook> <options>

例如,要将 bqplot 示例笔记本渲染为独立应用程序,请运行

git clone https://github.com/voila-dashboards/voila
cd voila
voila notebooks/bqplot.ipynb

当您的基于笔记本的应用程序上线时,Voilà 会显示一条消息。默认情况下,Voilà 在 localhost:8866 上运行。

要提供 Jupyter 笔记本目录 的服务,请导航到您要提供的目录,然后只需运行 voila

cd notebooks/
voila

Voilà 提供的服务页面现在将包含目录中所有笔记本的列表。通过单击其中一个,您将触发 Voilà 的转换过程。您单击的每个笔记本都将创建一个新的 Jupyter 内核。

作为 Jupyter 服务器扩展#

您也可以在 Jupyter 服务器中使用 Voilà(例如,在运行 jupyter labjupyter notebook 之后)。

注意

Voilà 也可以用作笔记本服务器扩展,与 notebook 服务器或 jupyter_server 一起使用。

要在预先存在的 Jupyter 服务器中使用 Voilà,首先启动服务器,然后转到以下 URL

<url-of-my-server>/voila

例如,如果您键入了 jupyter lab 并且它在 http://localhost:8888/lab 上运行,那么 Voilà 将在 http://localhost:8888/voila 上访问。

在这种情况下,Voilà 将提供启动 Jupyter 服务器的目录的服务。

Voilà 如何工作?#

当 Voilà 在笔记本上运行时,会发生以下步骤

  1. Voilà 运行笔记本中的代码并收集输出

  2. 笔记本及其输出被转换为 HTML。默认情况下,笔记本 代码单元格被隐藏

  3. 此页面作为 Tornado 应用程序或通过 Jupyter 服务器提供服务。

  4. 当用户访问页面时,页面上的小部件可以访问底层的 Jupyter 内核。

示例笔记本#

notebooks 目录 包含可以使用 Voilà 渲染的 Jupyter 笔记本集合

  • basics.ipynb - 一个需要往返内核的交互笔记本。

  • bqplot.ipynb - 使用自定义 Jupyter 小部件,例如 bqplot.

  • dashboard.ipynb - 使用 gridstack.js 布局每个输出。

  • gridspecLayout.ipynb - 使用 GridspecLayout 布局不同的窗口小部件。

  • interactive.ipynb - 利用 ipywidget 的 @interact。

  • ipympl.ipynb - 包含使用 ipympl 小部件的自定义交互式 matplotlib 图形。

  • ipyvolume.ipynb - 使用自定义 Jupyter 小部件,例如 ipyvolume.

  • query-strings.ipynb - 使用 HTTP 查询参数对笔记本进行参数化

  • xleaflet.ipynb - 一个使用 C++ 内核和交互式小部件的笔记本

这些示例演示了不同的交互式 HTML 小部件,可以作为使用 Voilà 入门的灵感来源。

运行示例笔记本,可以使用以下方法安装一些额外的库

conda install -c conda-forge ipywidgets ipyvolume bqplot scipy

或者

conda env create

然后可以使用以下方法提供示例:

cd notebooks/
voila