🐍

PyCaret classification の import がエラーになる問題の解消

2024/04/14に公開

概要

Anaconda環境にPyCaretをインストールしたが、
Jupyter notebook上で、 from pycaret.classification import * を行った際に、
エラーが出てしまう。

解決概要

scipyjoblib のバージョンに問題があったので、
問題が起こらないバージョンをインストール。

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

ただし、 scipy1.11.4 に更新するだけでも良いのかも。

https://stackoverflow.com/questions/78008260/importerror-unable-to-import-interp-from-scipy-module

requirements.txt の参照元は以下

https://github.com/pycaret/pycaret/blob/master/requirements.txt

pip install -r https://raw.githubusercontent.com/pycaret/pycaret/master/requirements.txt

6行目

下記 GitHub issue を参考に、
joblibのバージョンを 1.3.2 に変更した。

https://github.com/pycaret/pycaret/issues/3959

pip install joblib==1.3.2

Discussion