はじめに
データ視覚化、機械学習、データマイニング用ツールとして JupyterLab を使用するため Anaconda をインストールする。ローカルの Windows 環境にインストールすることもできるが、できるだけローカル環境を汚したくない、かつ Docker で環境を作成するのはめんどくさそうだったため、WSL2 (Ubuntu-18.04) に Anaconda をインストールしてそこから JupyterLab を使用することとした。
(2021/7/8 修正)
~/.jupytetr/jupyter_lab_config.py にて c.LabApp.open_browser = False
をコメントアウトして c.LabApp.use_redirect_file = False
を追記。これで $ jupyter lab
実行時に自動でウィンドウが立ち上がる。
Anaconda インストーラのダウンロード
適当なディレクトリで以下コマンドを実行し、インストーラをダウンロードする。URL はここの Anaconda Installers から調べる。
$ wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
Anaconda のインストール
上記コマンドでシェルスクリプトがダウンロードされたので、以下で実行する。
$ bash Anaconda3-2021.05-Linux-x86_64.sh
上記実行後に [Enter] を押すと、規約が表示される(q
でスキップ可能)ので [yes] と打ち込んで同意する。その後インストール先が聞かれるが、デフォルトのままで進める。最後の conda init
の実行をするかどうか聞かれるので、[yes] を選択すると .bashrc 末尾に各種設定がされる。設定を反映させるために source ~/.bashrc
を実行すると、(base) [user name]:~$
のような画面になる。
Jupyter Lab の実行
この状況で、$ jupyter lab
を実行しても一瞬なにか表示がされるがその後なにも起きない。調べたところ、以下のような環境設定を行う必要があるとのこと。
1. jupyter_lab_config.py の作成
$ jupyter lab --generate-config
を実行すると、 ~/.jupyter/jupyter_lab_config.py が作成される。
2. c.LabApp.open_browser = False を追記
設定ファイルである ~/.jupyter/jupyter_lab_config.py の末尾に c.LabApp.open_browser = False
を追記すると、$ jupyter lab
実行で表示される http://localhost:8888/lab?token=xxxxxxxxxx のような URL にアクセスすることで JupyterLab を使用できる。
token が毎回生成されてそれを指定してアクセスするのはめんどくさいので、jupyter labをリモートから使うを参考にして、以下設定も合わせて実行。
3. パスワードのハッシュ値を生成
以下を実行し、パスワードのハッシュ値 ('sha1:xxxxxxxxxx') をコピーして、テキストファイルなどに保存する。
$ ipython
In [1]: from IPython.lib import passwd
In [2]: passwd()
Out [2]: 'sha1:xxxxxxxxxx'
In [3]: exit()
~/.jupyter/jupyter_lab_config.py の末尾に c.LabApp.password ='sha1:xxxxxxxxxx'
を追記すると、$ jupyter lab
実行で表示される http://localhost:8888/lab のようにトークンなしの URL で JupyterLab にアクセスできるようになる。
4. (2021/7/8 追記) c.LabApp.use_redirect_file = False を追記
設定ファイルである ~/.jupyter/jupyter_lab_config.py の末尾に c.LabApp.use_redirect_file = False
を追記すると、$ jupyter lab
実行で自動でウィンドウが立ち上がる。
(2021/6/21 追記) conda install が成功しない場合の対応
WSL2 ターミナル上で、$ conda install [package]
を実行するも以下エラーが繰り返され、インストールができない。
$ conda install [package]
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
conda updateで「Solving environment: failed」となった時の解決法に従って、以下コマンドを実行するとインストールできるようになった。
$ conda install anaconda
$ conda update --all
またパッケージによっては、PackagesNotFoundError: The following packages are not available from current channels: というエラーが出るものもあるので、$ conda config --append channels conda-forge
でレポジトリリストを追加しておく。(この例は conda-forge を追加しただけで、その他レポジトリリストも同様に追加できる。)
すでに追加されているレポジトリリストを確認するには $ conda config --get channels
、レポジトリリストを削除するには $ conda config --remove channels conda-forge
を実行すればよい。
(2021/6/21 追記) JupyterLab 拡張機能
JupyterLabのすゝめを参考に拡張機能を入れる。以下コマンドで nodejs をインストールし、アップデートする。
$ conda install nodejs
$ conda list | grep nodejs
nodejs 6.13.1 0 conda-forge
$ conda update nodejs
nodejs 15.14.0 h92b4a50_0 conda-forge
上記で拡張機能を入れる前準備ができる。
おわりに
意外と時間がかかったが、WSL2 で JupyterLab を扱えるようになった。いちいち localhost:8888/lab にアクセスするのが手間なので、そのあたりなんとかできないかなあ。