openpyxlでのエラー: ImportError: cannot import name ‘load_workbook’ from partially initialized module ‘openpyxl’ (most likely due to a circular import)となった場合

Python
この記事は約3分で読めます。

どうでもいい記事ですが、相談を受けたエラー対応についてメモ書き記事です。

そのうち、openpyxlの使い方説明記事もどっかでupしようかなぁと思っていた中で、先にエラーが起きて動かないという相談を受けたので、その回答からです。

Advertisements

openpyxlがimportErrorを起こしている

エラーメッセージは以下が出ていました。

ImportError: cannot import name 'load_workbook' from partially initialized module 'openpyxl' (most likely due to a circular import)

openpyxlからload_workbookがインストールできないとのことです。

その際に利用されていたスクリプトは以下でした。

from openpyxl import load_workbook

path = "有効なpathを指定"
ss = load_workbook(path)
print(ss.sheetnames)

動きそうですよね。なぜimportErrorが起きているのでしょうか?実はスクリプトの問題ではありませんでしたw

実際のやりとり

相談者
相談者

pythonでopenpyxl使い始めたんですが、なぜか早速動かないです。。help…

自分
自分

どんなエラーコード出てるの見せてぇ

ついでにスクリプトも貼っといて

相談者
相談者

これっす

ImportError: cannot import name 'load_workbook' from partially initialized module 'openpyxl' (most likely due to a circular import)
from openpyxl import load_workbook

path = "****"
ss = load_workbook(path)
print(ss.sheetnames)

自分
自分

あれっあってそう。。

なんだろう。。

そうなんですよ

openpyxl.py ってファイル名で作ってテストしたかっただけなんですけどねぇ。。

それだっ!!!

エラーの原因は実は?

はい、ファイル名ですw

importする際に、ファイル名とモジュール名が同一のため衝突してしまっています。openpyxl.pyというファイルを消して別ネームのファイルを作るようにリクエストしたところ動作したようです。

ファイル名の衝突はあまりみないケース(というか、そんなファイル名にするなよ。。)ですがね。

注意ですが、openpyxl.pyというファイルを消さずに別ファイルを同一ディレクトリに作成しても、衝突し続けますのでご注意ください。

コメント