В моем коде у меня есть два класса в разных модулях, которые нужны друг другу для целей подсказки типа. Поскольку это проблема кругового импорта, я использовал 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
для каждого файла проекта, но я все еще получаю эту ошибку. Если я уберу указанную c циклическую зависимость, другие возникнут. Моя версия python 3.7.6. Кто-нибудь знает, что я делаю не так и как я мог это исправить?