重複の可能性:
Pythonでの巡回加群の依存関係と相対的なインポート
Pythonでの循環インポートの次の例を考えてみましょう。
main.py:
from pkg import foo
pkg / __ init.py__:
# empty
pkg / foo.py:
from pkg import bar
pkg / bar.py:
from pkg import foo
main.pyを実行すると、例外が発生します。
Traceback (most recent call last):
File "/path/to/main.py", line 1, in <module>
from pkg import foo
File "/path/to/pkg/foo.py", line 1, in <module>
from pkg import bar
File "/path/to/pkg/bar.py", line 1, in <module>
from pkg import foo
ImportError: cannot import name foo
bar.pyを次のように変更します。
# from pkg import foo
import pkg.foo
例が機能します。
なぜこれが起こるのですか?* importpackage.module"と"frompackage import module "は同等ではありませんか(後者の余分な名前バインディングを除く)?