Ошибка циклического импорта в Django возникает только при импорте пакета geemap

Я пытаюсь использовать geemap в сочетании с django для создания веб-приложения для построения спутниковых данных. Я установил пакет geemap в свой проект django. Мой проект называется CustomMaps, а структура каталогов выглядит следующим образом. введите здесь описание изображения

Код для моего CustomMaps.urls.py выглядит следующим образом


from django.contrib import admin
from django.urls import path
from django.conf.urls import include, url




urlpatterns = [
    path('admin/', admin.site.urls),
    path('plotmap/', include('PlotMap.urls')),
]

Код моего PlotMap.urls.py следующий

from django.urls import path
from django.conf.urls import include, url
from .views import hello



urlpatterns = [
    path('hello/', hello, name = 'hello'),
]

А мой PlotMap.views.py выглядит следующим образом

from django.http import HttpResponse
from django.shortcuts import render
import geemap as gm
#import pandas as pd

def hello(request):
   map = gm.Map()
   return render(request, "PlotMap/hello.html", { "m" : map})

Но я получаю следующую ошибку при запуске проекта

Exception in thread django-main-thread:
Traceback (most recent call last):
  File "D:\Internship\Django App\MyProject\lib\site-packages\django\urls\resolvers.py", 
line 604, in url_patterns
    iter(patterns)
TypeError: 'module' object is not iterable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\HP\AppData\Local\Programs\Python\Python36-32\lib\threading.py", line 916, in _bootstrap_inner
    self.run()
  File "C:\Users\HP\AppData\Local\Programs\Python\Python36-32\lib\threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "D:\Internship\Django App\MyProject\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "D:\Internship\Django App\MyProject\lib\site-packages\django\core\management\commands\runserver.py", line 118, in inner_run
    self.check(display_num_errors=True)
  File "D:\Internship\Django App\MyProject\lib\site-packages\django\core\management\base.py", line 423, in check
    databases=databases,
  File "D:\Internship\Django App\MyProject\lib\site-packages\django\core\checks\registry.py", line 76, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
  File "D:\Internship\Django App\MyProject\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config
    return check_resolver(resolver)
  File "D:\Internship\Django App\MyProject\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver
    return check_method()
  File "D:\Internship\Django App\MyProject\lib\site-packages\django\urls\resolvers.py", 
line 416, in check
    for pattern in self.url_patterns:
  File "D:\Internship\Django App\MyProject\lib\site-packages\django\utils\functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "D:\Internship\Django App\MyProject\lib\site-packages\django\urls\resolvers.py", 
line 611, in url_patterns
    raise ImproperlyConfigured(msg.format(name=self.urlconf_name)) from e
django.core.exceptions.ImproperlyConfigured: The included URLconf 'CustomMaps.urls' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import.

Но если я запускаю тот же код после изменения файла views.py, как показано ниже, он работает совершенно нормально.

from django.http import HttpResponse
from django.shortcuts import render
#import geemap as gm
#import pandas as pd

def hello(request):
   #map = gm.Map()
   return render(request, "PlotMap/hello.html", { })

Я не могу понять, почему мой 'import geemap' приводит к ошибке циклического импорта в CustomMaps.urls.py. Я пытался искать то же самое, но до сих пор не смог ничего найти. Если кто-нибудь сможет мне помочь, я смогу продолжить работу в ближайшее время, спасибо.

На самом деле, я попробовал установить новую версию python (3.8), а также загрузил новую версию geemap (0.11.4), что решило проблему.

Но я все еще пытаюсь понять, как отобразить экземпляр geemap.Map() в моем шаблоне django, любые предложения будут очень полезны.

Я опубликую новый вопрос о том же самом.

Вернуться на верх