только один раз. Чтобы предотвратить это, я поместил в свой базовый скрипт следующее:

оложим, у нас есть два модуля с циклическими зависимостями:

# a.py
import b
def f(): return b.y
x = 42

# b.py
import a
def g(): return a.x
y = 43

Два модуля находятся в каталогеpkg с пустым__init__.py, Импортpkg.a или жеpkg.b работает нормально, как объяснено вэтот ответ, Если я изменю импорт на относительный импорт

from . import b

Я получаюImportError при попытке импортировать один из модулей:

>>> import pkg.a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pkg/a.py", line 1, in <module>
    from . import b
  File "pkg/b.py", line 1, in <module>
    from . import a
ImportError: cannot import name a

Почему я получаю эту ошибку? Разве ситуация не такая же, как и выше? (Это связано сэтот вопрос?)

редактировать: Этот вопрос не о разработке программного обеспечения. Мне известны способы избежать циклической зависимости, но в любом случае меня интересует причина ошибки.

Ответы на вопрос(3)

Ваш ответ на вопрос