ImportError: DLL load failed while importing _C in QGIS unter Windows beheben
ImportError: DLL load failed while importing _C in QGIS unter Windows beheben
Installiere das Microsoft Visual C++ Redistributable (x64) von aka.ms/vs/17/release/vc_redist.x64.exe, und starte Windows anschließend neu. PyTorch liefert kompilierte DLLs mit, die die Microsoft C Runtime benötigen, und Windows verweigert das Laden, wenn sie fehlt oder veraltet ist.
Traceback (most recent call last):
File "C:\...\site-packages\torch\__init__.py", line 141, in <module>
raise err
OSError: [WinError 126] The specified module could not be found.
Error loading "C:\...\site-packages\torch\lib\fbgemm.dll" or one of its dependencies.
ImportError: DLL load failed while importing _C: The specified module could not be found.
Gilt für Windows 10 und 11, QGIS 3.22 und höher sowie jedes PyTorch 2.x, das in die QGIS-Python-Umgebung oder in eine plugin-Umgebung installiert wurde.
Warum der Fehler auftritt
Vier Ursachen erzeugen dieselbe Zeile. In der Reihenfolge, in der sie sich als die tatsächliche Ursache herausstellen:
- Das Visual C++ Redistributable (x64) fehlt oder ist veraltet.
fbgemm.dllund die anderen torch-DLLs sind damit verknüpft. - Ein zweites Python auf deinem Rechner (Anaconda, Miniconda oder eine eigenständige Installation) platziert seine eigenen torch-DLLs dort, wo Windows sie zuerst findet. Seit Python 3.8 werden Erweiterungs-DLLs über
os.add_dll_directory()statt über PATH geladen, und eine gemischte Einrichtung registriert den falschen Ordner. - Das installierte Wheel passt nicht zur Maschine. Ein CUDA-Build auf einem Rechner ohne passenden NVIDIA-Treiber schlägt auf dieselbe Weise fehl.
- Ein Virenschutzprogramm oder eine Richtlinie zur Anwendungskontrolle in deinem Unternehmen hat nach Abschluss der Installation eine
.pyd- oder.dll-Datei in Quarantäne verschoben.
Um die Ursachen zu unterscheiden, führe where python in einer Eingabeaufforderung aus. Mehrere Ergebnisse weisen auf Ursache 2 hin. Ein Ergebnis und ein Fehler, der nach einem Neustart trotz Redistributable bestehen bleibt, weisen auf Ursache 3 oder 4 hin.
Die Lösung
Install the Visual C++ Redistributable (x64)
Lade vc_redist.x64.exe von Microsoft herunter und führe die Datei aus. Nimm den x64-Build, auch wenn auf dem Rechner zusätzlich der x86-Build installiert ist.
Restart Windows
Starte den Rechner neu, nicht nur QGIS. Die DLL-Suchliste wird einmal pro Prozess eingelesen, und das Installationsprogramm erledigt häufig erst beim Neustart noch ausstehende Aufgaben.
Test the import on its own
Öffne die OSGeo4W Shell über den QGIS-Ordner im Startmenü und führe python -c "import torch" aus. Eine Eingabeaufforderung ohne Fehlermeldung bedeutet, dass es funktioniert hat. In QGIS findest du denselben Test unter Plugins, dann Python Console und anschließend import torch.
Remove the second Python from PATH
Wenn where python mehr als einen Pfad zurückgegeben hat, öffne Start, gib "Umgebungsvariablen" ein, öffne Systemeigenschaften bearbeiten, dann Umgebungsvariablen und anschließend Path. Entferne die Einträge, die zu dem Python gehören, das du in QGIS nicht verwendest. Melde dich ab und wieder an.
Reinstall the wheel that matches the machine
Erzwinge auf einem Rechner ohne NVIDIA-GPU den CPU-Build: pip install --force-reinstall torch --index-url https://download.pytorch.org/whl/cpu. Wenn du eine GPU hast, verwende den Befehl, den die PyTorch-Installationsseite für deine CUDA-Version ausgibt.
Wenn das nicht geholfen hat
- Auf einigen Rechnern ist das Redistributable installiert, trotzdem fehlt eine Abhängigkeit,
libomp140.x86_64.dll. Sie wird mit Visual Studio Community installiert, das kostenlos ist. Lade keine einzelne DLL von einer Downloadseite herunter. - Überprüfe Windows-Sicherheit, dann Viren- und Bedrohungsschutz und anschließend Schutzverlauf. Stelle alles wieder her, was aus deinem
site-packages-Ordner entfernt wurde, und füge diesen Ordner vor der Neuinstallation zu den Ausschlüssen hinzu. - Installiere torch in einer conda-Umgebung mit conda statt mit pip, damit die Laufzeitbibliotheken vom selben Ort wie das Paket kommen.
WeiterlesenAI Segmentation für QGIS: Der komplette Leitfaden

