在我的代码中,我在不同模块中有两个类,出于类型提示的目的,它们彼此需要。由于这是一个循环导入问题,因此我在每个模块文件的顶部都使用了from __future__ import annotations
,但这并没有解决我的问题。我还是
Traceback (most recent call last):
File "C:\...\bil\Aircraft.py", line 10, in <module>
from bil.Crew import Seat
File "C:\...\bil\Crew.py", line 9, in <module>
from bil.Aircraft import Aircraft
File "C:\...\bil\Aircraft.py", line 10, in <module>
from bil.Crew import Seat
ImportError: cannot import name 'Seat' from 'bil.Crew' (C:\...\bil\Crew.py)
我的代码示例: Aircraft.py:
from __future__ import annotations
from bil.Crew import Seat
@dataclass
class Aircraft:
...
defaultCrewComposition: OrderedDict[Seat, int]
...
Crew.py
from __future__ import annotations
from bil.Aircraft import Aircraft
@dataclass
class Seat:
... (nothing linked to Aircraft)
@dataclass
class Category:
...
aircraft: Aircraft
作为最后的选择,我向每个项目文件中添加了from __future__ import annotations
,但仍然出现该错误。如果我删除了特定的循环依赖关系,其他人就会出现。
我的python版本是3.7.6。
谁知道我在做什么错以及如何解决?