我有一些代码分布在多个文件中,这些文件试图相互import
,如下所示:
main.py:
from entity import Ent
entity.py:
from physics import Physics
class Ent:
...
physics.py:
from entity import Ent
class Physics:
...
然后我从main.py
运行,我得到以下错误:
Traceback (most recent call last):
File "main.py", line 2, in <module>
from entity import Ent
File ".../entity.py", line 5, in <module>
from physics import Physics
File ".../physics.py", line 2, in <module>
from entity import Ent
ImportError: cannot import name Ent
我假设错误是由于导入entity
两次-一次在main.py
中,后来在physics.py
中-但我如何解决这个问题?
另请参见在Python中使用相互导入或循环(循环)导入时会发生什么?关于什么是允许的以及什么导致了WRT循环导入的问题的一般概述。请参见为什么循环导入似乎在调用堆栈中进一步向上工作,但随后会在更向下的位置引发导入错误?