LoginSignup
25
16

More than 5 years have passed since last update.

ImportError: cannot import nameを解消する

Last updated at Posted at 2012-04-11

コピペ

事象

以下のようなモジュール構造で、互いにモジュールを呼び合う場合に発生。

ファイル構成
view\
    __init__.py
    form1.py
    form2.py
form1.py
from veiw.fom2 import frm2
class frm1 ():
    ....
form2.py
from veiw.fom1 import frm1
class frm2 ():
    ....

原因

インポート時に、自分自身をインポートしているためにエラーとなっている(と思う)
ちなみに、組み込みモジュールと同じ名前のモジュールを作成した時も発生する。

解決策

グローバルな箇所でインポートをするのではなく、クラス内でインポートする。
例えば、コンストラクタ内や画面を呼び出す直前のファンクション内など。

form1.py
class frm1 ():
    def __init__(self):
        from veiw.fom2 import frm2
        self.fm = frm2()
25
16
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
16