Résoudre ImportError: DLL load failed while importing _C dans QGIS sous Windows
ImportError: DLL load failed while importing _C in QGIS on Windows
Installez le Microsoft Visual C++ Redistributable (x64) depuis aka.ms/vs/17/release/vc_redist.x64.exe, puis redémarrez Windows. PyTorch fournit des DLL compilées qui ont besoin du runtime C de Microsoft, et Windows refuse de les charger lorsqu'il est absent ou obsolète.
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.
Concerne Windows 10 et 11, QGIS 3.22 et versions ultérieures, ainsi que tout PyTorch 2.x installé dans le Python de QGIS ou dans l'environnement d'un plugin.
Pourquoi cela se produit
Quatre causes affichent la même ligne. Dans l'ordre où elles s'avèrent être les vraies :
- Le Visual C++ Redistributable (x64) est absent ou obsolète.
fbgemm.dllet les autres DLL de torch y sont liées. - Un second Python installé sur votre machine (Anaconda, Miniconda, une installation autonome) place ses propres DLL torch là où Windows les trouve en premier. Depuis Python 3.8, les DLL d'extension proviennent de
os.add_dll_directory()plutôt que de PATH, et une configuration mixte enregistre le mauvais dossier. - Le wheel installé ne correspond pas à la machine. Une version CUDA sur un ordinateur sans pilote NVIDIA compatible échoue de la même manière.
- Un antivirus ou une politique de contrôle des applications de l'entreprise a mis en quarantaine un fichier
.pydou.dllaprès la fin de l'installation.
Pour les distinguer, exécutez where python dans une invite de commandes. Plusieurs résultats indiquent la cause 2. Un seul résultat, avec une erreur qui persiste après un redémarrage suivant l'installation du redistributable, indique la cause 3 ou 4.
La solution
Install the Visual C++ Redistributable (x64)
Download vc_redist.x64.exe from Microsoft and run it. Take the x64 build even on a machine that also has the x86 one.
Restart Windows
A reboot, not just a QGIS restart. The DLL search list is read once per process, and the installer often leaves work for the restart.
Test the import on its own
Open the OSGeo4W Shell from the QGIS folder in the Start menu and run python -c "import torch". A clean prompt means it worked. Inside QGIS, the same test is Plugins, then Python Console, then import torch.
Remove the second Python from PATH
If where python returned more than one path, open Start, type "environment variables", open Edit the system environment variables, then Environment Variables, then Path. Take out the entries that belong to the Python you do not use in QGIS. Sign out and back in.
Reinstall the wheel that matches the machine
On a computer with no NVIDIA GPU, force the CPU build: pip install --force-reinstall torch --index-url https://download.pytorch.org/whl/cpu. With a GPU, take the command the PyTorch install page gives for your CUDA version.
Si cela ne fonctionne pas
- Certaines machines disposent du redistributable, mais il leur manque toujours une dépendance,
libomp140.x86_64.dll. Elle est fournie avec Visual Studio Community, dont l'installation est gratuite. Ne téléchargez pas une DLL isolée depuis un site de téléchargement. - Vérifiez Sécurité Windows, puis Protection contre les virus et menaces, puis Historique de protection. Restaurez tout fichier retiré de votre dossier
site-packages, puis ajoutez ce dossier aux exclusions avant de réinstaller. - Dans un environnement conda, installez torch avec conda plutôt qu'avec pip, afin que les bibliothèques runtime proviennent du même emplacement que le package.
À lire ensuiteAI Segmentation pour QGIS : le guide complet

