こんにちはフロントエンドエンジニアのまさにょんです!
今回は、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!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!