JupyterLite を使用することで可能です。
JupyterNoteBook を WASM 実装しているようです。
GoogleColab の場合、Google アカウントが必要になりますが、JupyterLite はアカウント不要です。
多くの Python ライブラリ(特にネイティブコードに依存するもの)は、まだ WebAssembly 上では動作しません。
手順
[1] デモページにアクセスし、「Use the template」から「Create a new Repository」を選択する
[2] デモリポジトリが自分のアカウントにフォークされるので、フォークしたリポジトリにアクセスする
※私の場合は次の URL
[3] Settings タブ -> Actions -> General と選択し、ワークフロー権限を読み取りと書き込み権限に変更する
[4] Pages を選択し、Build and depoloyment を GitHub Actions に変更する
[5] Actionst タブから initial Commit を選択し、Re-run-all jobs を実行する
[6] 成功するとデプロイ先の URL が表示されるのでアクセスする
[7] デフォルトの設定を変えたい場合は、replフォルダ配下にoverride.json を作成します
例えば、次のようにすることでデフォルトでダークテーマで表示します。
{
"@jupyterlab/apputils-extension:themes": {
"theme": "JupyterLab Dark"
}
}
[8] デフォルトで使用できるパッケージは少ない。例えば、pandasを使用するには、各種ライブラリをインストールします。
import piplite
piplite.install("matplotlib==3.3.3")
piplite.install("itkwidgets>=1.0a5")
piplite.install("skimage==0.19.2")
piplite.install("pandas>=1.4.0")
piplite.install("pooch>=1.3.0")
[9] Kernel を追加したい場合は、replフォルダ配下のrequirements.txt を編集する
例えば、SQliteKernel を使いたい場合、次の行を追加する
# SQLite kernel(optional)
jupyterlite_xeus_sqlite
デプロイされた Notebook に SQLite が追加されていることが確認できる
最終的な成果物
以上