“cannot import name ‘joblib’ from ‘sklearn.externals’ “の表示が出たとき 【scikit-learn】

Machine Learning

scikit-learn で機械学習を実行したとき、コマンドプロンプトに冒頭のエラーが出ました。対処方法を最短でまとめておきます。仕様変更になっています。

環境: Windows 10, Anaconda, Python 3

現象

Python スクリプトで sklearn.exeternals から joblib をインポート import しようとしたところ、コンソールに以下のインポートのエラーが表示されました。

"ImportError: cannot import name 'joblib' from 'sklearn.externals' "

スクリプトは書籍やネットを参照して作成しており、以前は動いていました。Python などのパッケージをアップデートをしていったところ、動かなくなりました。

対処方法: 直接、joblib をインポートする

Python のスクリプトで、以下(×→◎)のように書き換えれば正常に動作しました。

×: from sklearn.externals import joblib
◎: import joblib

バージョンアップに伴い、joblib が格上げされた格好になっています。

まとめ

scikit-learn の最近のバージョンでは、上記の sklearn.externals …が廃止され、joblib 単独でインポートするよう、仕様変更となっています。
機械学習関連の領域は技術のアップデートが頻繁で、1年経たないうちにインターネットや書籍の情報が古くなりますね。

関連リンク
・ モジュール、パッケージ、ライブラリのまとめ【Python】
・ “A column-vector y was passed when a 1d array was expected.” が出たとき 【scikit-learn】
・ LinearRegression の予測結果を整数で出力する 【scikit-learn】
・ Raspberry Pi で物体検出をやってみた 【Tensorflow Lite】
・ フルーツでの物体検出をやってみた 【YOLOv5】
・ おすすめ書籍 ピックアップ 【Python & 機械学習】

タイトルとURLをコピーしました