WSL2 Ubuntuの環境にPyCaretが使えるJupyterLabの環境を作る

備忘録エントリーです。

Windows環境でJupyterLabを使うのに、いわゆる"JupyterLab Desktop"を使っていたのですが、バージョンアップのたびにモジュールの再インストールが面倒になってきました。
普通のPython環境作って、そこで何とかするかと思いたち、作業を始めたところ、意外とはまったのでメモです。Windowsのローカルに入れるとごちゃごちゃするのでWSL2のUbuntuに環境を作ります。PyCaretを入れようとすると、バージョン依存でハマることも多く、最悪、母艦を汚さずに作り直しが出来るので・・・

なんだかんだ言って、Anacondaは便利

wsl2にUbuntu環境を作った後から話を進めます。一通り分析環境を整えるにはAnacondaが便利なので、これを使います。作業をしている時点でのバージョンは2023.07-2でした。インストーラをダウンロードして実行します。

$ wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
$ bash Anaconda3-2023.07-2-Linux-x86_64.sh

あとは実行パスを追加します。~/.bashrc の中でPATHの設定をしている後ろあたりに以下の行を追加。(Anacondaのインストールパスがホームの直下の場合)

export PATH=~/anaconda3/bin:$PATH

JupyterLabはこの時点で使えるようになります。ローカルで使うので特にトークンの設定は省略

$ jupyter lab --NotebookApp.token=''"

起動に成功したら、ブラウザで http://localhost/lab にアクセスすればOK。止めたいときはCtrl+D でシャットダウンします。

PyCaretをインストール

手順は公式に紹介されているものに準じます

https://pycaret.readthedocs.io/en/latest/installation.html

# create a conda environment # もちろん yourenvname の所は自分なりに変更
conda create --name yourenvname python=3.8

# activate conda environment
conda activate yourenvname

# install pycaret
pip install pycaret

# create notebook kernel connected with the conda environment
python -m ipykernel install --user --name yourenvname --display-name "display-name"

余談ですが、標準のcondaでpycaretは入りませんが、conda-forgeを使う手もあるかもです。これを書いている時点では v3.0.4

https://anaconda.org/conda-forge/pycaret

これですんなり入れば問題ないわけですが、ちょいちょいとトラブルが出てきます。結果的に自分が追加したのは以下のモジュール

conda install cardet 
conda install ipykernel
conda install pandas-datareader
conda install numpy  # これは元々入っているはずなんですけど、トラブったのでおまじない。

一応、これでPyCaret v3.1.0 が入りました。

ぶっちゃけ、何度か環境を作り直したわけです。一応、Tipsとしては

# 仮想環境 venvに切り替えたい場合
$ conda activate venv
# 仮想環境から抜けたい場合
$ conda deactivate
# 仮想環境 venv を削除してやり直したい場合
$ conda remove -n venv --all

動作確認

PyCaretをインストールした仮想環境をactivateし、JupyterLabを起動します。この際、ノートのファイルやデータなどを置くディレクトリに移動してから起動すると、そこがJupyterLab上の / ディレクトリになるので便利と思います。起動手順は上記と同じ。http://localhost/lab に任意のブラウザでアクセスします。

起動後には上記で作ったKernelに切り替えます。

Kernel > Change Kernel (一番下)

からブルダウンで選択します。(多くはデフォルトではipykernelが選択されていると思います。)切り替えた結果はウィンドウ左下に"(カーネル名)| idle " と表示されていればOK

もしノートブックを作成する際に、自分のカーネルが選べるようであれば、それを選んで作成していただいてもOKのはず。

ノートのソース欄に

import pycaret

を入れて実行できれば完成です。

もし先の手順でPycaretのインストールに成功しているにも関わらず、importできない場合には、環境切り替えがうまくいっていません。Change Kernelで切り変えて、カーネル再起動してからお試しください。
そもそもデフォルトのipykernel以外に表示されないという場合には、カーネル作成の段階でトラブルの予感がしますので、"python -m ipykernel install …" より作り直してみてください。

ここで強引にJupyterLabのコンソールを開いたり、マジックコマンドなどで強引にインストールしようとすると、Base環境をこねくり回すことになりかねません。結構な割合でバージョン依存性をゴチャゴチャにしがちなので、一旦、JupyterLabを止めるなりして、どこまで出来ているかを確認しつつ進めてください。