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 ?

2voto

Celui-ci a fonctionné pour moi:

pip install -- pywin32==227

1voto

user3233042 Points 39

J'ai rencontré le même problème lorsque j'ai désinstallé puis réinstallé une autre version de Python 2.7.x sur mon système en utilisant un installateur Windows 32 bits. J'ai obtenu la même erreur sur la plupart de mes déclarations d'importation.

J'ai désinstallé le Python nouvellement installé, téléchargé un installateur Windows 64 bits, réinstallé Python à nouveau, et cela a fonctionné.

1voto

sqp_125 Points 104

Donc j'ai rencontré des problèmes lors de l'installation de vtk sous Windows (comme j'utilise Python 3.7, il n'y a pas encore de binaire disponible. Juste pour les anciennes versions de Python pip install vtk ne fonctionne pas)

J'ai donc entré Python dans mon cmd:

Python 3.7.3 sur win32

Je sais maintenant que j'utilise Python 3.7.3 sur un 32 bits.

Ensuite, j'ai téléchargé la bonne roue sur VTK‑8.2.0‑cp37‑cp37m‑win32.whl

Ensuite, j'ai installé cette roue:

pip install VTK-8.2.0-cp37-cp37m-win32.whl

Ensuite, je l'ai testé et ça a fonctionné:

python
import vtk

1voto

Joel Points 47

J'ai rencontré le même problème en essayant d'écrire du code concernant la conversion de la parole en texte.

La solution était très simple. Désinstallez le pywin32 précédent en utilisant la méthode pip :

pip uninstall pywin32

Cela supprimera l'ancien qui est par défaut pour les ordinateurs 32 bits. Et réinstallez-le en utilisant

pip install pywin32

Cela installera celui pour l'ordinateur 64 bits que vous utilisez.

1voto

Swaroop Joshi Points 157

J'ai rencontré un problème similaire en essayant d'exécuter uvicorn,
Créer un nouvel environnement virtuel et réinstaller les packages python a fonctionné

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