📚

JuliaでJupyterLabを使う

2022/09/09に公開
1

https://zenn.dev/ohno/articles/7e83ffa103e43f

こちらの記事でJupyter Notebookの使い方を解説しました. 同じパッケージでJupyterLabも使えることを最近知ったので共有します.

インストール

REPL上で次のように入力します.

IJuliaのインストール
]
add IJulia

Jupyter Notebookの起動

REPL上で次のように入力します.

Jupyter Notebookの起動
using IJulia
notebook(detached=true)

detached=trueが何なのか忘れてしまいましたが, たしか付けておいた方が良かった気がするので付けています. わかる人がいたら教えてください. 追伸:コメントを頂きました. あった方が良さそうです.

JupyterLabの起動

REPL上で次のように入力します.

JupyterLabの起動
using IJulia
jupyterlab(detached=true)

detached=trueが何なのか忘れてしまいましたが, たしか付けておいた方が良かった気がするので付けています. わかる人がいたら教えてください. 追伸:コメントを頂きました. あった方が良さそうです.

ショートカット

いちいちJuliaを起動してJupyter Notebookを起動するのが面倒くさいという場合, 次のようなバッチファイルを作成しておけば, クリックするだけでJupyter Notebookを起動できる. Windows環境に限らず, MacやLinuxでも同じようなシェルスクリプトを書いておけばよい.

JupyterNotebook.bat
julia -e "using IJulia; notebook(detached=true)"
JupyterLab.bat
julia -e "using IJulia; jupyterlab(detached=true)"

下記のリンクに置いておいたので,それぞれ右クリック>名前を付けてリンク先を保存でダウンロードできる.
https://gist.github.com/ohno/b4b8fd196ff87a5e5c8c31b67ef9f28f
https://gist.github.com/ohno/97a120c4f891a9215a07987c862fd9ca

おわりに

複数のノートブックファイルを扱う場合はJupyterLabの方が使いやすそうです.

参考資料

https://julialang.github.io/IJulia.jl/stable/manual/running/

Discussion

ultimatileultimatile

detached=trueが何なのか忘れてしまいましたが, たしか付けておいた方が良かった気がするので付けています. わかる人がいたら教えてください.

ここに書いてありました.

You can use notebook(detached=true) to launch a notebook server in the background that will persist even when you quit Julia. This is also useful if you want to keep using the current Julia session instead of opening a new one.

notebook serverをbackground実行するためのoptionのようです.
以下上記の訳のようなものになります.

通常はREPLでserverを立ち上げるとnotebook()commandがずっと実行中になり, 立ち上げに使ったREPLは他のことに使えません.
また, notebook() commandを実行中のREPLをnotebook使用中に閉じるとserverが死ぬのでnotebook側で実行できなくなります.
このoptionを用いることで立ち上げに使ったREPLを終了してもkernelが生き続け, notebookを使い続けられます.
julia起動→notebook起動→julia終了→notebookで作業ができますね.

他の使い方として, このoptionを使うことでnotebook serverを立ち上げた後も立ち上げに使ったREPLを使い続けられます.
notebookを立ち上げてるのにREPLで作業するんですか?
batch/script実行の際はdetached=trueにしておかないとずっと実行中になってそのterminalが使えなくなるので書いておかないとダメですね.