ependências do módulo cíclico e importações relativas em Python

uponha que tenhamos dois módulos com dependências cíclica

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

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

Os dois módulos estão no diretóriopkg com um @ vaz__init__.py. Importandopkg.a oupkg.b funciona bem, como explicado emesta resposta. Se eu alterar as importações para importações relativas

from . import b

Eu recebo umImportError ao tentar importar um dos módulos:

>>> 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

Por que recebo esse erro? A situação não é praticamente a mesma que acima? (Isso está relacionado aessa questã?)

Edita: Esta questão não é sobre design de software. Estou ciente de maneiras de evitar a dependência circular, mas de qualquer maneira estou interessado no motivo do erro.

questionAnswers(3)

yourAnswerToTheQuestion