voila

From Jupyter notebooks to standalone web applications and dashboards

Github星跟踪图

voila

Documentation
Binder
Join the Gitter Chat

Rendering of live Jupyter notebooks with interactive widgets.

Introduction

Voilà turns Jupyter notebooks into standalone web applications.

Unlike the usual HTML-converted notebooks, each user connecting to the Voilà
tornado application gets a dedicated Jupyter kernel which can execute the
callbacks to changes in Jupyter interactive widgets.

  • By default, Voilà disallows execute requests from the front-end, preventing
    execution of arbitrary code.
  • By default, Voilà runs with the strip_source option, which strips out the
    input cells from the rendered notebook.

Installation

Voilà can be installed with the conda package manager

conda install -c conda-forge voila

or from pypi

pip install voila

JupyterLab preview extension

Voilà provides a JupyterLab extension that displays a Voilà preview of your Notebook in a side-pane:

jupyter labextension install @jupyter-voila/jupyterlab-preview

Usage

As a standalone tornado application

To render the bqplot example notebook as a standalone app, run
voila bqplot.ipynb.
To serve a directory of jupyter notebooks, run voila with no argument.

For example, to render the example notebook bqplot.ipynb from this repository with Voilà, you can first update your current environment with the requirements of this notebook (in this case in a conda environment and render the notebook with

conda env update -f environment.yml
cd notebooks/
voila bqplot.ipynb

For more command line options (e.g., to specify an alternate port number),
run voila --help.

As a server extension to notebook or jupyter_server

Voilà can also be used as a Jupyter server extension, both with the
notebook server or with
jupyter_server.

To install the Jupyter server extension, run

jupyter serverextension enable voila --sys-prefix

When running the Jupyter server, the Voilà app is accessible from the base url
suffixed with voila.

Documentation

To get started with using Voilà, check out the full documentation:

https://voila.readthedocs.io/

Examples

The following two examples show how a standalone Jupyter notebook can be turned into a separate app, from the command-line integration.

Rendering a notebook including interactive widgets and rich mime-type rendering
Voila basics

Rendering a notebook making use of a custom widget library (bqplot)

Voila bqplot

Showing the source code for a Voilà notebook

The sources of the Jupyter notebook can be displayed in a Voilà app if option strip_sources is set to False.

Voila sources

Voilà dashboards with other language kernels

Voilà is built upon Jupyter standard formats and protocols, and is agnostic to the programming language of the notebook. In this example, we present an example of a Voilà application powered by the C++ Jupyter kernel xeus-cling, and the xleaflet project.

Voila cling

The Voilà Gallery is a collection of live dashboards and applications built with Voilà and Jupyter widgets.

Most of the examples rely on widget libraries such as ipywidgets, ipyleaflet, ipyvolume, bqplot and ipympl, and showcase how to build complex web applications entirely based on notebooks.

New examples can be added to the gallery by following the steps listed in the voila-gallery/gallery repository.

Development

See CONTRIBUTING.md to know how to contribute and set up a development environment.

Voilà depends on nbconvert and
jupyter_server.

License

We use a shared copyright model that enables all contributors to maintain the
copyright on their contributions.

This software is licensed under the BSD-3-Clause license. See the
LICENSE file for details.

主要指标

概览
名称与所有者voila-dashboards/voila
主编程语言Python
编程语言JavaScript (语言数: 9)
平台
许可证Other
所有者活动
创建于2018-08-21 14:21:42
推送于2025-04-07 18:57:51
最后一次提交
发布数190
最新版本名称@voila-dashboards/widgets-manager8@0.5.8 (发布于 )
第一版名称0.0.1 (发布于 2018-09-07 18:54:11)
用户参与
星数5.7k
关注者数75
派生数513
提交数1.5k
已启用问题?
问题数752
打开的问题数303
拉请求数617
打开的拉请求数18
关闭的拉请求数123
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?