What
この記事はscikit-learnのimport時に生じたエラーを解決する記事です。
Problem
下記のプログラムで実行時に以下のエラーが出ました
sklearn.py
from sklearn import datasets
import numpy as np
# Irisデータセットをロード
iris = datasets.load_iris()
このコードを実行すると、一番下の行にsklearn
からdataset
が読み込めないとエラーが出てしまいます。
File "sklearn.py", line 1, in <module>
from sklearn import datasets
File "/Users/apple/python/sklearn.py", line 1, in <module>
from sklearn import datasets
ImportError: cannot import name 'datasets' from partially initialized module 'sklearn' (most likely due to a circular import) (/Users/apple/python/sklearn.py)
Solution
ファイル名をsklearn以外の名称にしたら解決しました。
ファイル名がsklearnになっていることが原因で、自分自身がインポートされていたようです。
Detail
以下の2行を実行し、ファイルがどこから読み込まれているかチェックしました
import sklearn
print(sklearn.__file__)
なんと、自分自身を読み込んでいました笑
/Users/apple/sklearn.py
なのでファイル名変えてみたらうまく行きました