Voici 将 Jupyter 笔记本转换为静态Web应用程序
项目描述
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-core
和jupyterlite-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-python、xeus-lua 或 xeus-javascript。
See the [jupyterlite-xeus documentation](https://jupyterlite-xeus.readthedocs.io/en/latest/) for more information
如果您想使用 https://github.com/jupyterlite/pyodide-kernel 或其他非 xeus 内核,您可能需要依赖 voici-core
和 jupyterlite-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 build
和 jupyter 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 部署的更多信息。
自己构建演示站点
您需要安装micromamba、mamba或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仓库中提交问题。如果您想贡献代码,请复制仓库并提交拉取请求。我们欢迎任何人的贡献!
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。