【Python】Pythonを実行したら AttributeError (most likely due to a circular import) がでる時のエラーの解決法

Python-AttributeError

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、Pythonを実行したら AttributeError (most likely due to a circular import) がでる時のエラーの解決法について解説します。

結論:(循環インポートが原因なら)ファイル名を変えれば解決する!

先に結論から言うと、ファイル名がエラーの原因の可能性が高いです。

なので、ファイル名を変えれば解決します。

AttributeErrorでは、参照しているメソッドやプロパティが存在しないためエラーがでています。

後述するような「循環インポート」が発生しているケースの場合は、ファイル名を変えれば解決します。

エラーが発生したSrcCode

エラーが発生したSrcCodeのファイル名は「 http.py 」でした。

import requests
import pprint

response = requests.get("https://jsonplaceholder.typicode.com/users")

pprint.pprint(response)

ファイルの実行結果: AttributeError

上記の「 http.py 」を実行すると、次のようなErrorが発生します。

実行結果: Error-発生
[ Error-Message ]

    AttributeError: partially initialized module 'requests' has no attribute 'get' (most likely due to a circular import)


[ 翻訳 ]

    AttributeError: 部分的に初期化されたモジュール 'requests' に属性 'get' がありません (循環インポートが原因である可能性が最も高い)

ファイル名がエラーの原因(循環インポートが原因である可能性が最も高い)

これは、本来の「requestsモジュール」のファイルや関数などをインポートできずに、

ローカルの別のファイルを間違ってインポートしてしまっているというファイル名によるモジュール読み込みエラーです。

つまり、ファイル名がモジュール内のファイル名などと一致してしまい、

モジュールを利用する自分自身(実行ファイル)をモジュールとして import して循環してしまっているという状態です。

エラー文にも「循環インポートが原因である可能性が最も高い」と記載されるぐらいあるあるのエラーです。

なので、ファイル名を変えれば解決します。

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

Python関係書籍

最近の投稿