数学的にどうなのさ?

大学時代にちょっと長く数学を勉強した人の雑記。数学のこと(主に統計)や趣味、メモなどが多くなります

Jupyter Lab導入とextension導入メモ

概要

会社でJupyter Labを使っている人を見て自分も導入したくなった。とりあえず会社のPCと自宅のPCに導入してみたが、結構時間がかかってしまったのでメモを残す。特に自宅のPCではextensionの導入でやたら悩まされたので…会社PCの方が制約が大きいはずなのに…

環境

Jupyter Labとは

Jupyter Notebookと同じようなものだと思っていただいてよい。しかしNotebookでは複数のipynbを開く場合はその数だけタブが増えるが、Labだといくつ開こうが一つのタブでおさまってくれるので見栄えがいい。またNotebookは開発が止まっているらしいとのウワサがあり、Labに移行していくらしいとのこと。であればNotebookからLabに移行したほうがいいかもしれない。

Jupyter Labの導入

今回はAnacondaを使っているのでJupyter Lab自体は最初から入っている状況。ただ後述するExtension機能を入れる場合はバージョンを上げておく必要がある。以下すべてのコマンドはすべて管理者権限で行う。まず念のため

conda install jupyter

でjupyterだけをアップデート。その後

conda install jupyterlab

でLabをバージョンアップしておく。
ちなみにだが、python3.5の場合は環境がおかしかったのかこの時点でダメだった。

Extensionの導入

ここからが面倒なことが多い。しかしNotebookのnbextensionのようなものなので、是非ともいれたい。

nodejsの導入

Labのインストールにはnodejsが必要になる。ものによっては

conda install -c conda-forge nodejs

でもいいらしいが、環境依存なのかこっちの方だとうまくいかない場合があるらしい。こんな時は

conda install nodejs

で行ける。会社PCは後者、自宅PCは前者でやっている。

npmのproxy設定

会社PCだといろいろとproxyが邪魔してくる。nodejsをインストールしたことでnpmが使えるようになるが、extensionのインストール時にnpmが動いているようで、npmのproxy設定が必要になる。以下の記事を参考に設定する。

ちなみにファイルを直接編集する方法もあるようだが、こっちだと編集する箇所がおかしかったのかうまくいかなかった。

yarnのproxy設定(不要かも?)

こっちはJupyter Labのbuildをproxy下で行えるようにする方法。ようはextensionが使えるようにするために必要…のはずだがコマンドプロンプト上で手作業で行う場合は不要かも?とりあえず下記を参考に設定する。こっちは上記のnpmのproxy設定のファイルを直接変種方法も記載されている。

Jupyter LabのExtension Managerの有効化

まずは上のメニューから「settings」>「Advanced Settings Editor」を選択。
f:id:lua0810:20200626222913p:plain

ここからExtension Managerを選択する。そこから右の「User Preferences」を編集する。図のように

{
    "disclaimed": true,
    "enebled": true
}

とする。Jupyter Labのバージョンによると思うが

{
    "enebled": true
}

でもいい場合あり。ここは画面中央付近の「System Defaults」の内容に沿ってもらえればOK。
f:id:lua0810:20200626223058p:plain

これで左部分のメニューに専用のメニューが出てくる。出てこない場合はJupyter Labをもう一回立ち上げなおしてみる。
f:id:lua0810:20200626223705p:plain

Extension機能のインストール

インストールしたいものの「install」をクリックすればOK。
f:id:lua0810:20200626223816p:plain
会社proxyを使っている環境だとここでbuildするか無視するか聞かれる。自宅PC環境ではでないので、おそらくyarnのproxy設定がここに関係していると思われる。
それでもコマンドプロンプト上で

jupyter lab build

とやってやればOK。proxy設定がされていないとここでもエラーが起きる。

Extension機能が有効にならない場合

ここまでの設定を行うことで普通ならうまくいくのだと思う。しかし自宅のPC環境だとExtensionが有効にならない現象が発生。よくみると導入したかったExtensionに対してLabのバージョンやnodejsのバージョンが足りないことがあったが、これをやっても駄目だった。
ただ以下を試すとできた。

手順は
1. 以下のファイルを削除する

  • Anaconda3/share/jupyter/lab/settings/build_config.json
  • Anaconda3/share/jupyter/lab/settings/page_config.json

2. 問題のあるextensionのtgzファイルを以下のフォルダから削除する

  • Anaconda3/share/jupyter/lab/extensions

3. もう一回buildする

jupyter lab build

4. Jupyter Labを立ち上げる

終わりに

とりあえずextensionが使えるようになった。気になっているのはLatexでしょうかね。学生の頃は結構Latexを書く環境をいろいろ試した記憶があるので…
他にも面白そうな機能は結構ありそうなので、これから勉強していきます。