web-dev-qa-db-fra.com

ImportError: DLL Échec du chargement:% 1 n'est pas une application Win32 valide.

J'ai ce problème où j'essaye d'importer cv2 sur python et d'obtenir le message d'erreur suivant.

>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: %1 is not a valid Win32 application.

Je comprends qu’il existe de nombreux articles à ce sujet dans lesquels il est suggéré que la taille du paquet est différente de celle du paquet python.

Cependant, tout ce que je cours est de 64 bits. Je suis sur win7 64 bits, j'ai le winpython 2.7.3.3, distribution 64 bits, et j'ai compilé opencv en 64 bits avec l'instruction fournie ici et placé le dll cv2.pyd dans la Lib/dossier site-packages de python. 

Malheureusement, la suggestion d'utiliser la version 32 bits de python ne fonctionne plus pour moi car je dois gérer des tableaux numpy trop volumineux pour 32 bits.

Merci!!!

------ METTRE À JOUR

Il ne manquait plus que d'ajouter le nouveau chemin des binaires opencv (C:\opencv\build\bin\Release) à la variable d'environnement Windows PATH, redémarrez python. 

Tout semble bien fonctionner maintenant!

26
Francis

Le message ImportError est un peu trompeur en raison de la référence à Win32, alors que le problème était simplement dû au fait que les DLLs n’étaient pas ouvertes. 

Ce problème a été résolu en ajoutant le chemin des fichiers binaires opencv à la variable d'environnement Windows PATH (à titre d'exemple, ce chemin est le suivant: C:\opencv\build\bin\Release). 

21
Francis

Vous pouvez essayer d'installer la version 32 bits de l'opencv

4
Oladapo Omonayajo

Ou vous devez reconstruire le module CV2 pour gagner 64 bits.

2
lukenothing

Il vous suffit de copier le fichier cv2.pyd du dossier x86 ( C:\opencv\build\python\2.7\x86\par exemple) dans C:\Python27\Lib\site-packages\, pas du dossier x64.

J'espère que cela vous aidera.

Quand j'ai eu cette erreur, il est parti après que mon ordinateur soit tombé en panne et redémarré. Essayez de fermer et de rouvrir votre IDE. Si cela ne fonctionne pas, essayez de redémarrer votre ordinateur. Je venais juste d'installer les bibliothèques à ce moment-là sans avoir à redémarrer pycharm quand j'ai eu cette erreur.

Jamais fermé PyCharm pour le premier essai, parce que mon ordinateur bluffé n'arrêtait pas de tomber en panne ... de travailler dessus, mais au moins il résolvait ce problème .. petites victoires .. :). 

0
Nick Brady

Je viens de frapper ceci et le problème était que le paquet avait à un moment été installé dans le répertoire de paquets par utilisateur. (Sous Windows.) Aka% AppData%\Python. Python cherchait donc une ancienne version 32 bits du fichier .pyd et échouait avec l'erreur indiquée. Malheureusement, la désinstallation de pip en elle-même n’est pas suffisante pour nettoyer cela, et pour le moment, le pip 10.0.1 ne semble pas avoir de paramètre --user pour la désinstallation, mais uniquement pour l’installation. 

tl; dr La suppression de l'ancien .pyd de% AppData%\python\python27\site-packages a résolu ce problème pour moi.

0
Mark Allen