Jupyter Notebook の Web アプリ化 (Mercury)

2022年11月6日

はじめに

Mercury は、Jupyter Notebook を Web アプリ化して共有する環境である。

バージョン

  • Ubuntu 20.04 LTS
  • Python 3.9.5
  • Mercury 3.2.5

インストールとデモの実行

$ pip install mljar-mercury
$ mercury run demo

ブラウザで以下を開く。

http://127.0.0.1:8000/

"Demo notebook" の [Open] をクリック。

[Run] をクリックすると、ノートブックが実行される。

ノートブックの設定

デモを実行していれば、カレントに demo.ipynb ができているはずなので、それを Jupyter Notebook で見てみる。

ノートブックの先頭に以下のようなセル (raw セル) がある。

---
title: 🚀 Demo notebook
description: Simple notebook with widgets demo
params:
    year:
        input: slider
        label: Please select the year
        min: 2000
        max: 2100
        value: 2022
    greetings:
        input: select
        label: Please select greetings
        value: Hello
        choices: [Cześć, Hello, Hi, Ciao, Salut]
    name:
        input: text
        label: What is your name?
        value: Piotr
    ---

title はタイトル、description はアプリの説明である。

params で画面の部品 (widget) を指示している。パラメータの名前は、変数名と一致させる。

コードを見せないようにすることができる。

show-code: False

有料版だと認証やアクセス制限が行えるらしい。

最初の画面のカスタマイズ

"welcome.md" ファイルを置いておけば、最初の画面をカスタマイズできる。

Web アプリの埋め込み

アプリの URL が "http://127.0.0.1:8000/app/1" などとなっているので、最後に "/embed" を付けて、iframe で埋め込む。

<iframe src="http://127.0.0.1:8000/app/1/embed" height="600px" width="1200px"></iframe>

起動

カレントディレクトリにあるノートブックを使用する場合は、次のように実行する。

$ mercury run

ポートの指定をしたい場合は、次のようにする。

$ mercury run 127.0.0.1:8080

ノートブックをサーバーで管理したい場合は、次のようにする。

$ mercury runserver --runworker

カレントディレクトリを参照しないので、空になっているか、デモを実行していればデモのデータが入っているはず。

ノートブック追加・削除はコマンドで行う。

ノートブックリストの表示

$ mercury list

追加

$ mercury add demo.ipynb

削除

$ mercury delete demo.ipynb

管理画面

管理画面で、ノートブックの追加・削除などが行える。

次のコマンドで管理者の設定ができる。

$ mercury createsuperuser

管理画面は "http://127.0.0.1:8000/admin" でアクセスできる。

リアルタイムの反映

開発用として、ノートブックの変更をリアルタイムに反映するモードがある。

$ mercury watch <ノートブック>

参考