跳转到主要内容

Voici 将 Jupyter 笔记本转换为静态Web应用程序

项目描述

voici

Github Actions Status JupyterLite Documentation Status

Voici 是一个从 Jupyter Notebook 生成静态仪表板的工具。它可以作为 Voilà 的直接替代品,它具有相同的命令并支持大多数 Voilà 的配置选项。

与 Voila 不同,Voila 通过服务器端执行来渲染交互式仪表板,而 Voici 使用 WebAssembly (Wasm) 内核在浏览器中渲染笔记本,使得生成的仪表板完全自包含并可分发。

这是由于 JupyterLite 项目 所做的出色工作才得以实现。

https://user-images.githubusercontent.com/591645/222892327-2a5b1341-640d-49c2-9e95-1f2d3ec122be.mp4

功能 🚀

  • 生成包含嵌入式 Wasm 内核的独立 HTML 文件。
  • 支持离线工作,无需服务器即可运行仪表板。
  • 支持使用 Jinja2 驱动的自定义模板来美化仪表板。
  • 支持所有具有 JupyterLite 内核的编程语言。例如,JupyterLite 默认提供的 JavaScript 和 Python 内核,以及 xeus 内核

voici 提供的 Python 包

voici 被分为两个 Python 包

  • voici-core 包提供了 voici 的核心功能,主要是 voici CLI。
  • voici 包是一个元包,它依赖于 voici-corejupyterlite-xeus

jupyterlite-xeus 允许您预先安装用于运行仪表板的包。例如,如果您的仪表板需要 Matplotlib,您可以在运行 voici 命令的文件夹中提供一个包含以下内容的 environment.yml 文件:

name: my-dashboard-env
channels:
  - https://repo.mamba.pm/emscripten-forge
  - conda-forge
dependencies:
  - xeus-python
  - matplotlib

已决定让 voici 依赖于 jupyterlite-xeus 以便方便,允许在不更新 Notebook 代码的情况下轻松从 voila 切换到 voici。

请注意,您可以安装多个 xeus 内核,如 xeus-pythonxeus-luaxeus-javascript

See the [jupyterlite-xeus documentation](https://jupyterlite-xeus.readthedocs.io/en/latest/) for more information

如果您想使用 https://github.com/jupyterlite/pyodide-kernel 或其他非 xeus 内核,您可能需要依赖 voici-corejupyterlite-pyodide-kernel

入门 🏁

要使用 Voici,您首先需要安装它

pip install voici

# OR BETTER

conda install -c conda-forge voici

# OR EVEN FASTER

mamba install -c conda-forge voici

然后,您可以从笔记本或笔记本目录生成静态仪表板,如下所示

# Build a single dashboard
voici my-notebook.ipynb
# Build a directory of notebooks
voici notebooks/

一旦仪表板构建完成,您只需使用简单的静态服务器即可提供服务,例如

cd _output
python -m http.server

高级用法

voici 命令行界面是 voila 和 jupyter lite 的混合体。在大多数情况下,用户可以通过使用 voila CLI 语法来依赖 voici 命令。

voici 默认运行 build 子命令,voici my-notebook.ipynb 命令是 voici build --contents my-notebook.ipynb 的快捷方式。对于高级用法,用户可以使用 jupyter lite CLI 语法调用 voici,例如

voici build --contents my-notebook.ipynb

voici buildjupyter lite build 命令之间的区别在于,voici 的命令将仅生成 Voici 仪表板,输出中不包括完整的 JupyterLab 界面。运行 voici build --contents . 等同于运行 jupyter lite build --contents . --apps voici

您可以通过指定要添加的其他应用程序来同时生成经典 jupyter lite 输出和仪表板

voici build --contents . --apps lab --apps retro

要获取有关如何使用 voici 命令的帮助,您可以运行

voici --help

我们还建议查看 JupyterLite 文档 以获取有关如何配置您的 voici 部署的更多信息。

自己构建演示站点

您需要安装micromambamamba或conda来构建emscripten环境。

演示目录包含以下内容:

  • notebooks/:由Voici提供服务的Notebooks目录
  • environment.yml:指定用于渲染仪表板的Emscripten环境文件,此文件必须包含所有Notebook依赖项

运行以下命令来构建演示站点:

git clone https://github.com/voila-dashboards/voici
cd voici/demo

voici notebooks

然后提供服务!

cd _output
python -m http.server

创建自己的GitHub页面部署

请按照本指南创建自己的GitHub页面部署。

限制⚠️

由于Voici使用Wasm内核执行notebooks,因此可渲染的notebooks类型存在一些限制:某些notebooks功能可能在Voici中无法正确工作或功能有限。

贡献👋

如果您发现错误或对功能有请求,请在本GitHub仓库中提交问题。如果您想贡献代码,请复制仓库并提交拉取请求。我们欢迎任何人的贡献!

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

voici-0.7.1.tar.gz (5.1 kB 查看哈希值)

上传时间

构建分布

voici-0.7.1-py3-none-any.whl (5.8 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面