У меня есть два модуля, которые импортируют что-то друг от друга:
project/urls.py
:
from modules.helpers import helper
urlpatterns = [
# patterns
]
modules/helpers.py
:
def helper():
# some magic
def main():
from project.urls import urlpatterns
# process urlpatterns
modules/__init__.py
:
from modules.helpers import main
main()
И все работает нормально , пока я не заверну from project.urls import urlpatterns
, чтобы он выглядел так:
def main():
try:
from project.urls import urlpatterns
except Exception as e:
print(str(e))
Он печатает:
невозможно импортировать имя urlpatterns из частично инициализированного модуля url (скорее всего, из-за циклического импорта) (/ Users / MaxCore / Documents / www/project/project/urls.py)
Что может быть причина?
EDIT
В минимально воспроизводимом примере все также работает нормально, вероятно, исключение связано с django как-то. Что-то изменилось в порядке импорта из-за попытки кроме блока
Если я укажу modules
в settings.INSTALLED_APPS
(что не требуется) и runserver
, он напечатает:
django .core.exceptions.AppRegistryNotReady: Приложения не загружено еще.