Jupyter Notebook の Web アプリ化 (Voilà)2023年6月4日 | |
はじめにVoilà はJupyter Notebook を Web アプリ化するライブラリである。GUI は ipwidgets を使うため、Jupyter Notebook がそのままアプリ化されるイメージで、そのために追加情報を埋め込む必要がない。 バージョン
インストールインストールは pip で行う。 >pip install voila 今回はまっさらな仮想環境を用いたので、以下のようにパッケージをインストールした。 >pip install jupyter matplotlib numpy scipy pandas ipywidgets ipympl voila jupyterlab を入れるとパッケージのバージョンの整合性が取れなくなるようだったので、jupyterlab のインストールは避けた。 ノートブックの用意試しに、次のようなノートブックを用意した (コード部分のみ)。 sqrt.ipynb
import ipywidgets as widgets
from IPython.display import display
answer = widgets.Label(value="")
text = widgets.Text(value="",
placeholder="数値を入力",
description="数値:",
disabled=False
)
def sqrt(a):
if a <= 0: return 0
x = 1.
for i in range(10):
x = x - (x**2 - a)/(2.*x)
return x
def handle_text_change(change):
try:
a = float(change.new)
x = sqrt(a)
answer.value = str(x)
except:
pass
text.observe(handle_text_change, names="value")
display(text)
display(answer)
plot.ipynb %matplotlib ipympl import matplotlib.pyplot as plt import numpy as np fig, ax = plt.subplots() x = np.linspace(0, 2*np.pi, 100) y = np.sin(3*x) ax.plot(x, y); 起動ノートブックがある場所で、Voila を起動する。 >voila ブラウザが起動してノートブックのリストが出る。http://localhost:8866/ に接続される。ノートブックを選ぶと起動される。URL はそれぞれ特有のものになる。 http://localhost:8866/voila/render/sqrt.ipynb? 上の URL を直接指定しても起動する。 ノートブックを直接していして起動することもできる。この場合の URL は http://localhost:8866/ になる。 ノートブック ![]() Voila ![]() | |
| PENGUINITIS | |