PyCaret classification の import がエラーになる問題の解消
概要
Anaconda環境にPyCaretをインストールしたが、
Jupyter notebook上で、 from pycaret.classification import *
を行った際に、
エラーが出てしまう。
解決概要
scipy
と joblib
のバージョンに問題があったので、
問題が起こらないバージョンをインストール。
pythonのバージョンも 3.11
系から 3.10
系に変えた。
(これは、もしかして必要ないかも?)
あと、自分は Anaconda
環境ですが、
PyCaretのissueに上がってる問題なので、
他の環境でも発生する可能性はあるかもしれません。
問題発生環境
項目 | バージョン |
---|---|
OS | Windows 11 |
Anaconda | 24.3.0 |
Python | 3.10.11 |
PyCaret | 3.3.0 |
起こった問題
from pycaret.classification import *
を実行時に、以下エラーが発生。
ImportError: cannot import name 'interp' from 'scipy'
ネットで問題を調べてみたところ、 scipy
のバージョンに問題がありそうだったので、
PyCaret公式gitの requirements.txt
を参照して、再セットアップ。
そうすると、次に同様箇所で以下エラーが発生。
ImportError: cannot import name '_format_load_msg' from 'joblib.memory'
こちらも同様に調査したところ、やはりバージョンに問題があるようで、
1.3.2
のバージョンをインストールして解決。
解決手順
行ったコマンドとしては以下の通り。
conda create -n PyCaretEnv python=3.10.11
conda activate PyCaretEnv
conda install -c conda-forge jupyter
conda install -c conda-forge pycaret
pip install -r https://raw.githubusercontent.com/pycaret/pycaret/master/requirements.txt
pip install joblib==1.3.2
次の項目で、1行ずつ解説します。
手順詳細
1行目
既存環境に影響を与えたくなかったのと、
python 3.11
とでの動作に問題があるような投稿を見かけたので、
3.10
で Anaconda の環境を構築。
conda create -n PyCaretEnv python=3.10.11
2行目
👆️で作成した環境をアクティブに
conda activate PyCaretEnv
3行目
新規環境に、 jupyter
をインストール。
conda install -c conda-forge jupyter
4行目
同じく、 PyCaret
をインストール
conda install -c conda-forge pycaret
5行目
下記 stack overflow の質問を参考に、
scipy
のバージョンを合わせるべく、
公式の requirements.txt
を元に pip install
。
ただし、 scipy
を 1.11.4
に更新するだけでも良いのかも。
requirements.txt
の参照元は以下
pip install -r https://raw.githubusercontent.com/pycaret/pycaret/master/requirements.txt
6行目
下記 GitHub issue を参考に、
joblibのバージョンを 1.3.2
に変更した。
pip install joblib==1.3.2
Discussion