131 votes

ImportError: Le chargement de la DLL a échoué : %1 n'est pas une application Win32 valide. Mais les DLL sont là

J'ai une situation très similaire à celle du Error "ImportError: DLL load failed: %1 is not a valid Win32 application", mais la réponse là-bas ne fonctionne pas pour moi.

Mon code Python indique :

import cv2

Mais cette ligne provoque l'erreur affichée dans le titre de cette question.

J'ai installé OpenCV dans C:\lib\opencv sur cette machine 64 bits. J'utilise Python 64 bits.

Ma variable PYTHONPATH : PYTHONPATH=C:\lib\opencv\build\python\2.7. Ce dossier contient cv2.pyd et c'est tout.

Ma variable PATH : Path=%OPENCV_DIR%\bin;... Ce dossier contient 39 fichiers DLL tels que opencv_core246d.dll.

OPENCV_DIR a cette valeur : OPENCV_DIR=C:\lib\opencv\build\x64\vc11.

La solution sur Error "ImportError: DLL load failed: %1 is not a valid Win32 application" dit d'ajouter "le nouveau chemin des binaires opencv (C:\opencv\build\bin\Release) à la variable d'environnement PATH de Windows". Mais comme indiqué ci-dessus, j'ai déjà le dossier des binaires OpenCV (C:\lib\opencv\build\x64\vc11\bin) dans mon PATH. Et mon installation OpenCV n'a pas de dossiers Release (sauf un vide sous build/java).

Qu'est-ce qui ne va pas ? Puis-je dire à Python de tracer de manière verbose le processus de chargement ? Quels fichiers DLL exactement recherche-t-il ?

J'ai remarqué que, selon http://www.dependencywalker.com/, le cv2.pyd dans C:\lib\opencv\build\python\2.7 est en 32 bits, alors que la machine et le Python que j'utilise sont en 64 bits. Est-ce que ça pourrait être le problème ? Et si oui, où puis-je trouver une version 64 bits de cv2.pyd ?

0voto

alireza Points 1

Tout d'abord, j'ai copié cv2.pyd de /opencv/build/python/2.7/x86 à C:/Python27/Lib/site-packeges. L'erreur était

"RuntimeError: module compilé avec la version de l'API 9 mais cette version de numpy est 7"

Ensuite, j'ai installé numpy-1.8.0-win32-superpack-python2.7.exe et OpenCV fonctionne correctement.

>>> import cv2
>>> print cv2.__version__
2.4.13

0voto

Ramesh-X Points 783

Vous pouvez installer opencv depuis les sites officiel ou non officiel.

Référez-vous à cette question et à ce problème si vous utilisez Anaconda.

0voto

Ranjan Points 31
  1. Veuillez vous assurer d'avoir installé une version Python 2.7.12 ou inférieure. Sinon, vous obtiendrez certainement cette erreur.
  2. Assurez-vous que le client Oracle est installé en 64 bits si le système d'exploitation est en 64 bits.
  3. Assurez-vous que le compilateur Microsoft Visual C++ pour Python 2.7 est en 64 bits pour un OS 64 bits ou en 32 bits pour un OS 32 bits.

Note: Si votre OS est en 64 bits, installez tous les packages en 64 bits ou si l'OS est en 32 bits, installez le package en 32 bits.

0voto

sharat kanthi Points 39

Il a une solution très simple. Après avoir installé opencv, placez

cv2.pyd de C:\opencv\build\python\2.7\ **x64** dans C:\Python27\Lib\site-packages

au lieu de cela, placez cv2.pyd de C:\opencv\build\python\2.7\ **x86** dans C:\Python27\Lib\site-packages

0voto

user984003 Points 2509

J'ai obtenu cette erreur en essayant d'importer MySQLdb.

Ce qui a fonctionné pour moi a été de désinstaller Python puis de le réinstaller.

J'ai eu l'erreur après avoir installé npm (https://www.npmjs.com/get-npm). Une chose qu'il a faite a été d'installer Python alors que je l'avais déjà.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X