debugpythonModerate
Python circular import causing ImportError
Viewed 0 times
circular importpartially initializedlazy importTYPE_CHECKINGimport inside function
terminal
Error Messages
Problem
Python throws ImportError: cannot import name X from partially initialized module Y. Circular dependency between modules.
Solution
Fixes: (1) Move import inside the function that needs it (lazy import). (2) Extract shared code into a third module. (3) Use TYPE_CHECKING guard: from __future__ import annotations; if TYPE_CHECKING: from module_b import ClassB. (4) Import the module, not the name: import module_b then use module_b.ClassB.
Why
Python executes imports sequentially. When A imports B and B imports A, A is only partially loaded. The partially initialized module is missing attributes not yet defined.
Revisions (0)
No revisions yet.