Python зависимость между модулями
Возможный дубликат:
Python: круговой (или циклический) импорт
Круговая зависимость в Python
У меня есть пакет Python с двумя модулями, которые импортируют друг друга. То есть в модуле А у нас есть строка
from B import b
и в модуле B у нас есть строка
from A import a
Когда я пытаюсь загрузить пакет, содержащий эти модули, я получаю следующую ошибку
ImportError: невозможно импортировать имя
Есть ли способ избежать этой ошибки (без объединения двух модулей в один большой модуль AB)?
2 ответа
Разделите их на еще больше модулей - например, вы можете выделить
a
в отдельный модуль, который какA
а такжеB
зависит от.использование
import A
а такжеimport B
вместоfrom ...
варианты - это сделает импорт успешным, даже если имя, которое вы хотите импортировать, еще не было привязано во время импорта.Используйте импорт на уровне функций в определенных местах, где вам нужны символы из другого модуля. (Мне не очень нравится этот вариант, но он работает.)
Вы не можете сделать это, потому что у вас есть круговая ссылка. Создайте новый модуль и импортируйте оба там:
from B import b
from A import a