こんにちは,しまさん(@shimasan0x00)です.
最近はサーバーにJupyterLabを立ち上げて自分のPCからブラウザでアクセスし,ゴリゴリデータ分析してます.
そんな様子を見て同じ研究室のメンバーからJupyter Labについて聞かれることが多かったので簡単にまとめたいと思います.
サーバー周りの話も軽くしたいと思います.
Jupyter Labとは

Jupyter LabはJupyter Notebookの後継となるプログラム等をインタラクティブに実行できる環境です.
基本的にはPythonの実行環境なのですが後述するKernelを導入することで様々な言語やフローチャートやネットワーク図を作成するようなノートブックを作成,実行することができます.
ブラウザでアクセスできて,Terminalも使えるしファイルのアップロード/ダウンロードも可能,サーバー内のファイルの編集だってできるんです.
使ってみないという選択肢はないです.
スポンサーリンク
Labのインストール
Anacondaの方は,
conda install -c conda-forge jupyterlab
pipでインストールするかたは,
pip install jupyterlab
でインストールできます.
インストールできたら
jupyter lab
で起動することが可能です!!!
デフォルトの設定であれば
localhost:8888
でブラウザからアクセスすればOKです.
スポンサーリンク
拡張機能をインストールしたい人へ
Jupyter Labはnpmを使用することで拡張機能をインストールすることができます.
つまり,ServerにNode.jsをインストールする必要があります.
自分が所有しているサーバーであれば直にNode.jsをインストールしてもいいのですが研究室など他の人も使用している場合は困ります.
なので私はnvmを使用しています.
nvmはNode.jsのバージョン管理ができるのですがインストールしたユーザに対してのみnode環境を構築するという部分がよかったので採用しました.
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bash_profile
でインストール完了です.簡単.
あとは以下のコマンドでNode.jsをインストールします,
# nvm ls-remote // インストールできるバージョン確認
nvm install stable
nvm alias default stable
source ~/.bash_profile
これで準備完了!!!
Jupyter Labをカスタマイズ
テーマ変更
最初起動した場合は真っ白なテーマだと思います.
個人的には眩しく感じてしまうのでDarkテーマに変えてしまいたいと思います.
メニューバー -> Settings -> JupyterLab Theme -> JupyterLab Dark

これもかなりカッコいいのでいいのですが他のダークテーマもないかな…と思っていたら最近見つけました.
めちゃくちゃ良いのですがPlotlyやmatplotlibで可視化したら背景の黒で文字が見えなくなって悲しい思いをしました.
インストールするなら以下のコマンドでインストールできます.
jupyter labextension install @oriolmirosa/jupyterlab_materialdarker
matplotlibやPlotly側で文字の色を変えればいける…はず.
エディタ周りを変更
次はエディタの変更です.
行番号表示したりフォントサイズを変更したりして自分の好みに合わせていきます.
メニューバー -> Settings -> Advanced Setting Editor
そうするとSettingsというタブがひらかれると思います.
まずは行番号の表示です.
「Notebooks」を選択して右側のUser Overridesに以下をコピペして保存してください,
{
"codeCellConfig":{
"lineNumbers":true
}
}
そうするとノートブックで行番号が表示されるようになります.
テキストサイズなどは同様に左側にある設定をコピペして,自分好みの値に設定してあげることでカスタマイズできます.
拡張機能
JupyterLabといったらやはり拡張機能はかかせないです.
便利なものが多く,よりLab生活が快適になるでしょう.
先程のテーマの部分で先に紹介してはいるのですが,LabではコマンドによるインストールとLabのGUIからインストールする方法があります.
後者の方法ですがデフォルトではできないので設定していきます.
といっても簡単で先程の場所にあるExtension Managerを開き,
{
"enabled": true
}
とするだけです.

拡張機能は色々ありますが
・git(Lab上でgitのあれこれができる)
・toc(Markdownが超使いやすくなる)
・variableinspector(変数の中身がわかる)
・statusbar(ステータスバーが表示される)
くらいは入れといて損はないと思います.
以下の拡張機能はお好みで…
・jupyterlab-drawio(drawioがLab上で使える)
・jupyterlab-sql(SQLをGUI上で叩ける)

draw.ioの拡張機能にいたってはJupyterLabってなんだっけってなります(いい意味で).
サーバー周りの話
ではJupyterLabをリモートで使うためにあれこれしたいと思います.
まずは設定を記述するファイルを生成します( notebook_config.py ).
jupyter lab --generate-config
これを行うと.jupyter以下にファイルが生成されます.
次にパスワードの生成を行います.
ipython
>>> from IPython.lib import passwd
>>> passwd()
実行すると文字列が出力されると思うのでコピーしておいてください.
では先程作成した notebook_config.py に以下を書き込みます.
c = get_config()
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.password = 'sha1:XXXXXXXXXXX' #さっきのpasswd
c.NotebookApp.open_browser = False #ブラウザ起動自分でしない
c.NotebookApp.port = 8888 #お好きにどうぞ
あとはjupyter lab
で起動してあげればOK!!
http:IP/domain名:8888
でLabにアクセスできます.
スポンサーリンク
Kernelを入れる
冒頭でもいいましたがJupyterLabではKernelをインストールすることでPython以外の言語を扱うことができるNotebookができあがります.
私は最近だとBashのカーネルやWolframカーネルなんかを入れました.
bashなら以下のコマンドで簡単にインストールできます.
pip install bash_kernel
python -m bash_kernel.install
他にもかなり沢山のカーネルがあるので是非Githubを確認してみてください.