Posted at

Pythonでimportしたモジュールの明らかに存在するクラスや関数が見つからない時


シチュエーション

fooというモジュールを試したいとしましょう。

foo.pyというファイルを作ります。import fooしてfoo.barを呼び出します。

AttributeError: module 'foo' has no attribute 'bar'!!!!!!!!!!!!!!

なぜ!??!!?!???!????


なぜか

import fooで目的のモジュールではなくfoo.py自身を呼び出してしまっているから。スクリプトのあるディレクトリが優先です。(sys.path[0]

play_foo.pyなどの名前を付ける習慣にすると良いでしょう。