Python 3.15+Исключенияисключение
ImportCycleError
встроенные исключения
Подкласс ImportError: ленивый импорт (lazy import) при первом обращении обнаружил, что модуль прямо или через цепочку импортирует сам себя.
Синтаксис
class ImportCycleError(ImportError)
Обычный импорт с циклом часто «работает наполовину»: второй модуль получает недозагруженный первый и падает с AttributeError или ImportError «partially initialized module». Ленивый импорт откладывает загрузку до первого обращения к имени, поэтому цикл обнаруживается позже — в момент обращения, и тогда возникает ImportCycleError. Поскольку это подкласс ImportError, старый код с except ImportError его ловит. Лечится так же, как любой цикл импортов: вынести общее в третий модуль или импортировать внутри функции.
Примеры
print(issubclass(ImportCycleError, ImportError)) # → True
print(ImportCycleError.__mro__[1].__name__) # → ImportError
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности