J'ai installé PyQt5 sur la plate-forme Windows et l’obtention d’une erreur importError: DLL a échoué.
J'ai installé pyqt5 en utilisant la commande
pip3 install pyqt5
Successfully installed pyqt5-5.8.1
Ma version de Python est la suivante:
Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
L'erreur d'importation est la suivante:
from PyQt5.QtWidgets import QApplication
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.
Merci et salutations
C'est à cause de Python3.dll
manquant (la stub dll, qui réexporte les fonctions Python3x.dll
, de sorte qu'une version de l'extension puisse fonctionner pour plusieurs versions de python).
Si votre distribution Python ne contient pas python3.dll, vous pouvez en essayer un à partir de WinPython ( https://winpython.github.io/ ).
Au moins les versions 2017/04/01 devraient l'avoir.
1) Téléchargez WinPython (la version 'Zero' suffit; il doit s'agir de la même "version principale" - 3.5/3.6 - et de "bitness" - 32/64 - comme votre Python !!!).
2) Extrayez dans un répertoire temporaire, prenez le fichier python3.dll et collez-le dans votre répertoire python, à côté du fichier python3x.dll.
3) Travailler avec QT
Je sais que le sujet est ancien mais j'ai également eu ce problème avec la dernière version de PyQT 5.11 mais je l'ai rétrogradé à 5.9 via:
pip install PyQT5==5.9
et cela a résolu le problème.
Si vous avez créé virtualenv, vérifiez si python3.dll
a été copié dans le répertoire Scripts
de ce virtualenv. Il est fort probable que seul python35.dll
(ou python36.dll
, etc., selon la version de Python) ait été copié, auquel cas vous obtiendrez l'erreur que vous obtenez.
J'ai trouvé une solution alternative.
J'utilisais une virtualité parce que PyCharm m'en avait fabriqué une et que je ne savais pas mieux. J'avais installé PyQt5 dans ce virtualenv.
Je suis passé à l'absence de virtualenv et ai installé PyQt5 dans le répertoire global Python. Cela l'a corrigé.
Dans mon cas, j'avais Windows 10 32 bits et Python 3.7.2 . En utilisant PyQt5 5.11 installé via pip, j'ai eu cette erreur:
from PyQt5.QtWidgets import QApplication
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.
J'ai remarqué que la version 5.11 ne comportait pas de DLL Qt. J'ai donc réinstallé une version plus ancienne avec python -m pip uninstall PyQt5
et python -m pip install PyQt5==5.10
.
N'utilisez jamais --no-cache-dir car cela produira une erreur d'assertion lors de l'installation du fichier whl:
assert building_is_possible
assertion Error
J'ai fini par installer 5.10 et j'ai eu l'erreur suivante:
qt.qpa.plugin: Could not load the Qt platform plugin "windows" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Après avoir défini QT_DEBUG_PLUGINS et même le chemin du plug-in avec:
set QT_DEBUG_PLUGINS=
set QT_PLUGIN_PATH=C:\Python37-32\Lib\site-packages\PyQt5\Qt\plugins
J'ai réalisé que la dll qwindows.dll a été recherchée dans le bon chemin où elle réside.
TL; DR: J'ai relancé mon script python Qt avec une élévation UAC et devinez quoi, cela a fonctionné !
Dans Windows 10 avec Python 3.6, j'ai corrigé cette erreur en passant par les étapes suivantes:
1) Installez PyQt5 avec pip install pyqt5
2) Comme expliqué dans ce site Web Microsoft , j'ai modifié l'installation de Visual Studio 2017 Community pour permettre l'utilisation des "outils de développement natif Python"
3) Copiez python3.dll
de C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64
à C:\IntelPython3\Lib\site-packages\PyQt5
(vérifiez votre répertoire)
Vous pouvez essayer de télécharger le programme d’installation Python 64 bits (programme d’installation exécutable Windows x86-64) à partir de ici . J'utilise PyQt5==5.10.1
. Résoudre mon problème
Cela peut également arriver si vous avez installé une version d'Anaconda fournie avec PyQt5 et que vous occultez ce paquet avec une version installée de pip. La désinstallation de la version installée de pip a corrigé le problème pour moi.