ImportError: DLL load failed beim Import von _gdal in QGIS unter Windows
QGIS unter Windows: ImportError: DLL load failed beim Import von _gdal
Eine zweite GDAL-Kopie befindet sich in Ihrem PATH, und Windows lädt deren DLLs statt der QGIS-DLLs. Finden Sie die Ordner mit einer gdal*.dll, entfernen Sie die Ordner, die nicht zu QGIS gehören, und melden Sie sich ab und wieder an.
ImportError: DLL load failed while importing _gdal: The specified module could not be found.
On Windows, with Python >= 3.8, DLLs are no longer imported from the PATH.
If gdalXXX.dll is in the PATH, then set the USE_PATH_FOR_GDAL_PYTHON=YES environment variable
to feed the PATH into os.add_dll_directory().
Gilt für Windows, QGIS 3.16 und neuer sowie für jedes Python 3.8 oder neuer, das from osgeo import gdal importiert. Derselbe Fehler erscheint im QGIS-Panel „Log Messages“ auch als "Couldn't load plugin 'processing'".
Warum das passiert
Die letzten drei Zeilen sind ein Hinweis, den GDAL ausgibt, wenn der Import fehlschlägt. Sie sind nicht die Ursache. Deshalb ändert das Setzen der Variable so oft nichts.
Python 3.8 hat die Suche nach Erweiterungs-DLLs in PATH eingestellt. GDALs osgeo/__init__.py umgeht das: Es durchsucht PATH und ruft für jeden Ordner mit einer gdal*.dll oder libgdal*.dll os.add_dll_directory() auf. Microsoft garantiert keine Reihenfolge zwischen Ordnern, die auf diese Weise hinzugefügt wurden. Wenn zwei Kopien vorhanden sind, kann daher die falsche gewinnen, und ihre DLLs passen nicht zum _gdal-Modul, das QGIS mitgeliefert hat. Eine zweite, weniger häufige Ursache ist ein normales python.exe oder ein PyCharm-Lauf außerhalb der QGIS-Umgebung, in dem kein GDAL-Ordner registriert ist. Eine dritte Ursache ist eine teilweise aktualisierte OSGeo4W-Installation, die sowohl gdal als auch gdal-dev enthält.
Um die Ursachen zu unterscheiden, führen Sie die Prüfung in Schritt 1 aus. Zwei oder mehr Ordner bedeuten die erste Ursache. Keine Ordner bedeuten die zweite.
Die Lösung
List every folder on PATH that holds a GDAL DLL
Öffnen Sie die OSGeo4W Shell über den QGIS-Ordner im Startmenü und führen Sie diesen Befehl aus. Er wiederholt GDALs eigene Logik:
python -c "import os,glob;print('\n'.join(p for p in os.environ['PATH'].split(';') if p and (glob.glob(os.path.join(p,'gdal*.dll')) or glob.glob(os.path.join(p,'libgdal*.dll')))))"
Remove the copies that are not QGIS
Anaconda, Miniconda, eine zweite QGIS- oder OSGeo4W-Installation oder ein anderes GIS-Paket, das sein eigenes GDAL in PATH einträgt. Öffnen Sie Start, geben Sie „environment variables“ ein und öffnen Sie Edit the system environment variables, dann Environment Variables und anschließend Path. Löschen Sie diese Einträge. Melden Sie sich von Windows ab und wieder an, damit jeder Prozess den neuen PATH übernimmt.
Start QGIS from its own shortcut
Starten Sie QGIS nicht über eine Shell, in der Sie bereits das Aktivierungsskript einer anderen Umgebung ausgeführt haben, und nicht über eine zweite OSGeo4W-Shell-Sitzung. Eine Shell, die einen gdal-dev-Pfad gesetzt hat, gibt ihn an QGIS weiter.
For an outside interpreter, borrow the QGIS environment
Führen Sie Ihr Skript innerhalb der OSGeo4W Shell oder über python-qgis.bat im QGIS-Ordner bin aus. Dadurch wird der richtige DLL-Ordner registriert, bevor Python startet.
Wenn das nicht funktioniert hat
- Setzen Sie die Variable, erwarten Sie aber nur wenig davon. In QGIS: Settings, dann Options, dann System und anschließend die Gruppe Environment. Aktivieren Sie das Kontrollkästchen für benutzerdefinierte Variablen, fügen Sie
USE_PATH_FOR_GDAL_PYTHONmit dem WertYEShinzu und starten Sie QGIS neu. Das hilft, wenn sich der richtige Ordner in PATH befindet und keine andere Kopie konkurriert. Bei zwei GDAL-Kopien hilft es nicht. - Verwenden Sie in conda
gdalausschließlich aus conda-forge in einer frischen Umgebung und mischen Sie niemals ein pip-GDAL-Wheel hinein. - Reparieren Sie die Installation: Führen Sie das OSGeo4W-Installationsprogramm erneut aus und installieren Sie die Pakete
gdalundqgisneu oder installieren Sie QGIS über das eigenständige Installationsprogramm neu. Das ist der schnellste Weg aus einer teilweise aktualisierten OSGeo4W-Installation.
WeiterlesenAI Segmentation für QGIS: Der komplette Leitfaden

