J'ai une situation très similaire à celle de ImportError: le chargement de la DLL a échoué:% 1 n'est pas une application Win32 valide , mais la réponse ne fonctionne pas pour moi.
Mon code Python dit:
import cv2
Mais cette ligne jette l'erreur indiquée dans le titre de cette question.
J'ai OpenCV installé 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 contientcv2.pyd
et c'est tout.
Ma variable PATH: Path=%OPENCV_DIR%\bin;...
ce dossier contient 39 fichiers DLL tels queopencv_core246d.dll
.
OPENCV_DIR a cette valeur: OPENCV_DIR=C:\lib\opencv\build\x64\vc11
.
La solution à ImportError: le chargement de la DLL a échoué:% 1 n'est pas une application Win32 valide dit d'ajouter «le nouveau chemin des binaires opencv ( C:\opencv\build\bin\Release
) à la variable d'environnement Windows PATH». Mais comme indiqué ci-dessus, j'ai déjà le dossier binaires OpenCV ( C:\lib\opencv\build\x64\vc11\bin
) dans mon PATH. Et mon installation OpenCV n'a pas de dossier Release (sauf un vide sous build / java).
Des idées sur ce qui ne va pas? Puis-je dire à Python de suivre de façon verbale le processus de chargement? Qu'est-ce que la DLL recherche exactement?
Merci, Lars
ÉDITER:
Je viens de remarquer que, selon http://www.dependencywalker.com/ , l' cv2.pyd
en C:\lib\opencv\build\python\2.7
est de 32 bits, alors que la machine et le Python sont en cours d' exécution , je suis 64 bits. Est-ce que cela pourrait être le problème? Et si oui, où puis-je trouver une version 64 bits de cv2.pyd?
PYTHONPATH
habitude de contenir les entrées que l'installation de la bibliothèque SimpleCV y avait laissées. Bien que j'aie déjà désinstallé le SimpleCV, lePYTHONPATH
n'a pas été restauré et pointait vers certains répertoires avec des versions en conflit d'OpenCV laissées par l'installation de SimpleCV. Solution: effacez le fichierPYTHONPATH
.Réponses:
Fichiers binaires Windows non officiels pour les packages d'extension Python
vous pouvez trouver toutes les bibliothèques python d'ici
la source
Veuillez vérifier si la version de Python que vous utilisez est également 64 bits. Sinon, cela pourrait être le problème. Vous utiliseriez une version python 32 bits et auriez installé des binaires 64 bits pour la bibliothèque OPENCV.
la source
Wow, j'ai trouvé encore un autre cas pour ce problème. Aucun de ces éléments n'a fonctionné. Finalement, j'ai utilisé la capacité de python à introspecter ce qui était chargé. Pour python 2.7, cela signifie:
Cela a généré un fichier "cv2.pyd" complètement inattendu dans un répertoire DLL Anaconda qui n'a pas été touché par plusieurs tentatives de désinstallation / installation. Python y cherchait en premier et ne trouvait pas ma bonne installation. J'ai supprimé ce fichier cv2.pyd et essayé à nouveau imp.find_module ("cv2") et python a immédiatement trouvé le bon fichier et cv2 a commencé à fonctionner.
Donc, si aucune des autres solutions ne fonctionne pour vous, assurez-vous d'utiliser l'introspection python pour voir quel fichier python essaie de charger.
la source
Dans mon cas, j'ai python 64 bits, et c'était lxml qui n'était pas la bonne version - j'aurais dû utiliser la version x64 de cela aussi. J'ai résolu ce problème en téléchargeant la version 64 bits de lxml ici:
https://pypi.python.org/pypi/lxml/3.4.1
C'était la réponse la plus simple à un problème frustrant.
la source
Je viens d'avoir ce problème, il s'avère que c'était juste parce que j'utilisais la version x64 du fichier opencv. J'ai essayé le x86 et cela a fonctionné.
la source
Si votre système de construction (CMake dans mon cas) copie le fichier de
<name>.dll
à<name>.pyd
, vous obtiendrez cette erreur si le fichier d'origine n'était pas réellement une dll. Dans mon cas, la création de bibliothèques partagées a été désactivée, de sorte que le fichier sous-jacent était en fait un*.lib
.J'ai découvert cette erreur en chargeant le
pyd
fichier dans DependencyWalker et en constatant qu'il n'était pas valide.la source
J'ai eu le même problème. Voici ce que j'ai fait:
J'ai téléchargé le fichier Pywin32 Wheel à partir d' ici , puis
J'ai désinstallé le module pywin32 . Pour désinstaller, exécutez la commande suivante dans l'invite de commandes.
pip uninstall pywin32
Ensuite, j'ai réinstallé pywin32 . Pour l'installer, ouvrez l'invite de commande dans le même répertoire où se trouve le fichier de roue pywin32. Exécutez ensuite la commande suivante.
pip install <Name of the wheel file with extension>
Le fichier de roue sera comme: piwin32-XXX-cpXX-none-win32.whlCela résout le problème pour moi. Vous aimerez peut-être aussi l'essayer. J'espère que cela fonctionnera pour vous aussi.
la source
J'ai copié le
cv2.pyd
fichier du/opencv/build/python/2.7/x86
dossier au lieu du/x64
dossier versC:/Python27/Lib/site-packeges
. J'ai suivi le reste des instructions fournies ici .Ajouté par quelqu'un d'autre, non vérifié: je copie également le fichier
cv2.pyd
dans le dossierC:/Python27/Lib/site-packages/cv2
. Ça marche.la source
Pour moi, le problème était que j'utilisais différentes versions de Python dans le même projet Eclipse. Ma configuration n'était pas cohérente avec les propriétés du projet et les versions d'exécution de la configuration Python.
Dans Projet> Propriétés> PyDev , j'avais défini l'interpréteur sur Python2.7.11.
Dans Run Configurations> Interpreter , j'utilisais l'interpréteur par défaut. Le changer en Python 2.7.11 a résolu le problème.
la source
J'ai rencontré le même problème lorsque j'ai désinstallé et réinstallé une version différente de 2.7.x de Python sur mon système à l'aide d'un programme d'installation Windows 32 bits. J'ai eu la même erreur sur la plupart de mes déclarations d'importation. J'ai désinstallé le Python nouvellement installé et téléchargé un programme d'installation Windows 64 bits et réinstallé Python à nouveau et cela a fonctionné. J'espère que cela vous aide.
la source
J'ai donc eu des problèmes pour installer vtk sous Windows (comme j'utilise python 3.7, il n'y a pas de binaire disponible jusqu'à présent juste pour les anciennes versions de python pip install vtk ne fonctionne pas)
J'ai écrit python dans mon cmd:
Python 3.7.3 on win32
Donc, je sais maintenant que python 3.7.3 fonctionne sur un 32 bits.
J'ai ensuite téléchargé la bonne roue à VTK-8.2.0-cp37-cp37m-win32.whl
Ensuite, j'ai installé cette roue:
Ensuite, je l'ai testé et cela a fonctionné:
la source
Mettez à jour numpy.
pip install numpy --upgrade
Travaille pour moi!!
la source
J'ai d'abord copié
cv2.pyd
de/opencv/build/python/2.7/x86
àC:/Python27/Lib/site-packeges
. L'erreur étaitEnsuite, j'ai installé
numpy-1.8.0-win32-superpack-python2.7.exe
et opencv fonctionne très bien.la source
Vous pouvez installer à
opencv
partir de sites officiels ou non officiels .Reportez-vous à cette question et à ce problème si vous utilisez
Anaconda
.la source
la source
Il a une solution très simple. Après l'installation du
opencv
lieucv2.pyd
duC:\opencv\build\python\2.7\ **x64**
auC:\Python27\Lib\site-packages
au lieu de, place
cv2.pyd
deC:\opencv\build\python\2.7\ **x86**
àC:\Python27\Lib\site-packages
la source
J'ai eu cette erreur en essayant d'importer MySQLdb.
Ce qui a fonctionné pour moi, c'est de désinstaller Python, puis de le réinstaller.
J'ai eu l'erreur après l'installation de npm ( https://www.npmjs.com/get-npm ). Une chose qu'il a faite a été d'installer Python même si je l'avais déjà.
la source
Cela a fonctionné pour moi. J'ai essayé différentes méthodes mais c'était ma meilleure solution.
Ouvrez l'invite de commande et tapez ce qui suit;
pip install opencv-python
. (assurez-vous que votre connexion Internet est activée). après cela, essayez de l'importer à nouveau.la source
Celui-ci a travaillé avec moi
la source
J'ai trouvé la solution, peut-être que vous pouvez essayer d'utiliser la fenêtre cmd plutôt que la fenêtre d'invite anaconda pour démarrer votre premier test de scrapy.
la source