目次
the imp module is deprecated in favour of importlibという警告
久しぶりに「scikit-learn」を使いました。
すると、importしただけで、こんな警告が表示されました。
DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
翻訳してみると・・
非推奨警告:impモジュールはimportlibのために推奨されなくなりました。 代わりの使用方法については、モジュールのドキュメントを参照してください
という意味らしい。
しかし。
impモジュールなんか、どこにも使ってないし、意味がわかりません。
警告を出しているのは、「cloudpickle.py」というソース
よく見ると。
この警告を出しているのは、「cloudpickle.py」というソースです。
どうも、sklearn(scikit-learn)が、cloudpickleというモジュールを使ってて、そこでエラーがでてるみたいです。
そう思って、ググってみると、確かにそれらしい記事が(英語ですが)ありました。
どうも、この問題はsklearnとcloudpickleの2つのモジュールのバージョンの特定の組合せで発生する問題らしいです。
自分の環境は。
- cloudpickle 0.6.1
- sklearn(scikit-learn)が、0.20.0
なのですが、この組合せだけが駄目みたいです。
バージョンアップすればでなくなるので放っておく
なので。
cloudpickleを、0.5.6にダウングレードする。
もしくは、sklearn(scikit-learn)を0.20.1にする。
そうすると警告はでなくなります。
わざわざ、ダウングレードするのは悔しいので、sklearn(scikit-learn)のバージョンをあげようとしました。
が、残念ながら。
Windows環境で「pip install -U」をやっても、現時点(2018/12/19)では、0.20.0までしかあげられないのですね。
困ったもんです。
結局。
非推奨警告で、処理に影響がでることはないので、無視しとくことにしました。
そのうち、0.20.1にアップグレードできるようになるでしょう。
やれやれ。