よしみな ブログ

資格試験・就活・労働問題・資産運用について記事を上げていきます。

Pythonの初歩的なエラー

Pythonにて、UUIDを生成するプログラムを作成した時に検出されたエラーについて書きます。

 

エラー文

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

 

python のプログラム
import uuid

print(uuid.uuid4())

 

 

さて、ここでなんでこのエラーが出るのかを結論から言うと・・・

プログラム文のせいではなく、プログラムを保存しているファイル名が原因となっています。

 

このプログラムを書いたファイル名を「uuid.py」にして保存すると上記のようなエラー文が返ってきます。

 

プログラミングをする上で、やってはいけないとされているのが関数名やモジュール名などをファイル名にするのがNGと言われています。

 

しかし、初心者だとやっちゃうことも多いと思います。

 

ファイル名を「uuid.py」とすると1行目

import uuid

 

によるところで、自分のファイルをimportしようとするので

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

というエラーがでます。

 

※またエラー文の内容をgoogle翻訳で翻訳すると

AttributeError:部分的に初期化されたモジュール 'uuid'には属性 'uuid4'がありません(ほとんどの場合、循環インポートによる)

となります。これで気づく人もいるのかな?

 

結論

何かのモジュールをインポートするときのファイル名は同じファイル名が保存されていないか注意する必要がある。

 

説明なんか読まないでもどこを直せばいいかだけ教えてほしい方は

ファイル名「uuid.py」を「sample.py」に変更すればおk!

 

以上です。

 

ここまで読んで頂き、ありがとうございました。