Bonjour,

Je voudrais afficher une carte Leaflet dans mon interface web développée avec Bootstrap.

Je travaille sous PyCharm.
Pour mon projet, j'ai crée un environnement virtuel (basé sur Python 3.7). L'installation est faite à partir d'une instance Python installée dans Anaconda.
J'ai installé les packages django-bootstrap5 et django-leaflet via l'interface PyCharm, et GDAL (version 3.2.3) avec la commande pip à partir d'un fichier .whl

Si je démarre le serveur web, il me renvoie une erreur car il ne trouve pas la librairie GDAL.
Comme vu sur d'autres posts, il faut spécifier la variable GDAL_LIBRARY_PATH dans le fichier settings.py du projet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
GDAL_LIBRARY_PATH = str(BASE_DIR) + '\\venv\\Lib\\site-packages\\osgeo\\gdal302.dll'
si je fait un print lors du lancement du serveur, j'ai bien le bon chemin dans GDAL_LIBRARY_PATH

Mais à un moment dans l'exécution du lancement, il y a un module qu'il ne trouve pas, et qu'il cherche apparement dans l'arborescence de Anaconda, alors que je travaille avec mon environnement virtuel:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 D:\Nicolas\Python\Test Django\django_test>python manage.py runserver
D:\Nicolas\Python\Test Django\django_test\venv\Lib\site-packages\osgeo
D:\Nicolas\Python\Test Django\django_test\venv\Lib\site-packages\osgeo
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "C:\soft\Anaconda3-2019\lib\threading.py", line 917, in _bootstrap_inner
    self.run()
  File "C:\soft\Anaconda3-2019\lib\threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\core\management\commands\runserver.py", line 110, in inner_run
    autoreload.raise_last_exception()
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\utils\autoreload.py", line 87, in raise_last_exception
    raise _exception[1]
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\core\management\__init__.py", line 375, in execute
    autoreload.check_errors(django.setup)()
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\apps\registry.py", line 122, in populate
    app_config.ready()
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\admin\apps.py", line 27, in ready
    self.module.autodiscover()
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\admin\__init__.py", line 24, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\utils\module_loading.py", line 47, in autodiscover_modules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "C:\soft\Anaconda3-2019\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\leaflet\admin.py", line 10, in <module>
    from django.contrib.gis.db.models import GeometryField
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\gis\db\models\__init__.py", line 3, in <module>
    import django.contrib.gis.db.models.functions  # NOQA
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\gis\db\models\functions.py", line 3, in <module>
    from django.contrib.gis.db.models.fields import BaseSpatialField, GeometryField
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\gis\db\models\fields.py", line 3, in <module>
    from django.contrib.gis import forms, gdal
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\gis\forms\__init__.py", line 3, in <module>
    from .fields import (  # NOQA
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\gis\forms\fields.py", line 2, in <module>
    from django.contrib.gis.gdal import GDALException
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module>
    from django.contrib.gis.gdal.datasource import DataSource
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 40, in <module>
    from django.contrib.gis.gdal.driver import Driver
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module>
    from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module>
    from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
  File "D:\Nicolas\Python\Test Django\venv\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 53, in <module>
    lgdal = CDLL(lib_path)
  File "C:\soft\Anaconda3-2019\lib\ctypes\__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] Le module spécifié est introuvable
Où est l'erreur ??


Merci,
Nico