web-dev-qa-db-fra.com

"Échec du chargement de la DLL" lors de l'importation de cv2 (opencv)

J'ai passé de nombreuses heures à résoudre ce problème mais je ne parviens pas à trouver de solution. Merci de tout indice que vous savez partager avec moi.

dans [Windows Server 2012 R2 x64, python 3.7 64x]

pip install opencv-contrib-python

installé sans erreur.
et quand j'essaie de l'importer

import cv2

montre moi cette erreur:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import cv2
  File "C:\Program Files\Python37\lib\site-packages\cv2\__init__.py", line 3, in
 <module>
    from .cv2 import *
ImportError: DLL load failed: The specified module could not be found.

et je vois un autre sujet à propos de cette erreur mais leur solution ne fonctionne pas pour moi:
- DLL erreur avec échec de chargement lors de l'importation de cv2
- Echec de l'importation de cv2 en python: DLL échec du chargement
- et beaucoup de pages dans ici

Certains d'entre eux disent à propos de ce problème parce que l'anaconda, et je n'ai même pas d'anaconda. et beaucoup disent que le problème 32 ou 64 version, je tente les deux et la déception. beaucoup sur les variables système ...
Ce que dll n'a pas pu charger? CV2? Pourquoi?

ce que j'essaye jusqu'à maintenant:
- change la version de Python: 3.5, 3.7, 2.7 en 86x et 64x (désinstaller la dernière version complète et supprimer tous les fichiers restants dans les fichiers du programme ... puis installer la nouvelle)
- essayez avec d'autres paquets tels que: opencv-python, opencv-contrib, essayez d'installer des versions spécifiques avec .whl (dans une rubrique que j'ai lu à ce sujet, installez numpy-1.14.5 + mkl-cp37- cp37m-win_AMD64.whl et opencv_python-3.4.3 + contrib-cp37-cp37m-win_AMD64.whl mais rien ne change)
- importer numpy avant cv2 pour chaque test
- installé la mise à jour 3, 2008, 2010, 2017 de Microsoft Visual C++ 2015 pour 64x

aidez-moi, s'il vous plaît.

UPDATE
2 JOURS SUIVANTS
J'essaie de gérer la base dll manquante sur dépendance walker mentionnée dans le message ci-dessous, téléchargez tous les dll et mettez-les dans le système 32, c'est un bon indice sans pour autant résoudre le problème.

JOUR 4,5
ma prochaine étape, essayer de compiler OpenCV sur ma machine, installer visual studio 2012 + cmake et se baser sur document compile 2 version, 64x et 32, la compilation pose de nombreux problèmes de c lang et devez installer Visual C++ redistribuable pour Visual Studio 2012 ...) et je les résous tous, puis j’ai 2 version compilée avec succès mais les deux ont le même problème avec dll manquant, la compilation le processus est si lent et donne 2 jours de moi. alors si je ne réussis pas dans cette mission:/je cherche une nouvelle voie ...

JOUR 6
Ma prochaine étape consiste à essayer d’exécuter OpenCV sur ma machine avec docker (j’essaie mais docker windows s’installe sur Windows 10 et Windows Server 2016), je recherche donc une alternative. J'ai trouvé Vagrant qui fonctionne comme un docker, mais avec VM (boîte visuelle) aujourd'hui, je consacre beaucoup de temps à cet article. C'est incroyable. Le concept de docker et de vagabond est tellement attrayant, et je joue avec cela comme ça. nouveau casse-tête :) premier spectacle d'erreur sur ... et des erreurs illimitées continuent: /

Jour 7
Les tests Vagrant ont également échoué car mon serveur Windows 2012 est une machine vb (serveur visuel) et exécute une zone visuelle dans une autre zone visuelle impossible! donc j'ai besoin de nouveaux indices :(

Jour 8-9
essayez d’installer vagrant avec VMware, j’ai téléchargé VMware. Malheureusement, ce plugin n’est pas gratuit (79 $). J’essaie donc de travailler avec pythonanywhere.com that 'vous donne accès à des machines avec environnement Python complet déjà installé. ' Dans ce compte gratuit, vous ne pouvez pas ouvrir avec urllib, et plus encore ... je veux donc essayer d’installer Ubuntu dans VMware moi-même ... J’ai lu ici les résultats après le travail. c'est impossible avec la même raison vb (visual box)

5
Neo Anderson

Cela peut arriver si vous utilisez la distribution Windows 10 N, mais les distributions N ne sont pas préinstallées avec Windows Media Feature Pack, qui est requis après OpenCV version 3.4 et ultérieure.

La solution recommandée consiste à installer le module de fonctions à l’adresse: https://www.Microsoft.com/en-us/software-download/mediafeaturepack

Veillez à choisir la version qui fonctionne avec votre version actuelle de Windows.

Si ce n'est pas une option, retournez à une version antérieure d'OpenCV qui ne possède pas de dépendances dll, vous pouvez le faire en: pip install opencv-python=3.3.0.9

Depuis que Windows a lancé sa version N, ce problème a été constaté à de nombreux endroits et a de nombreux impacts sur l’environnement Windows. Le moyen le plus rapide de déterminer si ce problème est ouvert youtube dans le navigateur Edge. , c'est le problème.

4
anand_v.singh

J'ai eu la même erreur (bien que j'ai compilé OpenCV moi-même), dans mon cas il manquait quelques dépendances DLL. Vous pouvez vérifier cela avec le programme Dependency Walker .

Téléchargez Dependency Walker et exécutez-le, puis ouvrez le fichier cv2.pyd avec Dependency Walker. Il doit figurer dans C:\Program Files\Python37\lib\site-packages\cv2\ si le package pip est installé correctement.

Ce programme recherche ensuite les dépendances (ce qui peut prendre quelques minutes), puis affiche les fichiers DLL manquants en rouge.

3
Venify

Python 3.7 peut ne pas supporter certains modules. 

  • Essayez d'installer python 3.6.4 
  • Utilisation de la commande Invite, "pip install Opencv" ou "pip install opencv-python"
  • Importer cv2
2
Vikhyat Agarwal

Pouvez-vous essayer de désinstaller opencv et de l’installer en utilisant plutôt un fichier wheel? Ici est un site Web contenant de nombreuses versions d'OpenCV compilées pour Windows, recherchez celle dont vous avez besoin et installez-le simplement avec la commande pip.

Donc, si vous avez Python 3.6 (64 Bit) et que vous souhaitez installer OpenCV 3.4.3, téléchargez le fichier wheel: opencv_python‑3.4.3‑cp36‑cp36m‑win_AMD64.whl

2
Rakshith Gb

Après 15 jours de réflexion, cette solution a fonctionné pour moi. Et je suis sûr que cela fonctionnera pour vous aussi. J'ai installé anaconda pour utiliser OpenCV 3.1.0. J'ai suivi les étapes suivantes:

1) J'ai installé le programme d'installation anaconda-5.3 64 bits (614,3 Mo) utilisant python 3.7. Vous pouvez télécharger anaconda à partir du lien: https://www.anaconda.com/download/#windows

2) Après l’installation d’Anaconda, ouvrez Anaconda Invite en tapant «Anaconda Invite» sur le bouton Démarrer de Windows. Ouvrir avec "Exécuter en tant qu'administrateur".

3) Vous devez créer un nouvel environnement pour installer et utiliser OpenCV module.Write les commandes suivantes pour créer et activer un nouvel environnement:
>conda create --name myNewEnv python=3.5.0
>activate myNewEnv
"myNewEnv" est le nom du nouvel environnement.

4) Vous devez maintenant installer les conditions préalables pour OpenCV, qui est numpy, puis installer opencv3. Démarrez Internet avant d’exécuter les commandes suivantes:
>conda install numpy
>conda install anaconda-client
>conda install --channel https://conda.anaconda.org/menpo opencv3

5) OpenCV3 a été installé. Maintenant, vérifiez l’installation en exécutant les commandes suivantes:
(myNewEnv) C:\Users\Nilesh> python
>>>import cv2
>>>cv2.__version__

Suivez les étapes ci-dessous pour démarrer OpenCV3 une seconde fois:

1) Ouvrez "anaconda command promt" dans le menu de démarrage avec les droits "exécuter en tant qu'administrateur"
2) Tapez commande> activer votre_nouveau_nom_environnement
3) Supposons que vous vouliez exécuter le fichier situé sur le bureau pour cette commande suivante:
> cd C:\Users\Nilesh\Desktop
4) Votre répertoire de travail est maintenant le bureau.
5) Tapez la commande suivante pour exécuter n’importe quel code (par exemple, test.py).
> python test.py
Remarque: ici, python signifie version 3.

J'espère que cette solution fonctionnera pour vous.

1
Nell

J'ai rencontré le même problème dans Windows Server 2012 R2. Après de nombreuses découvertes, j’ai trouvé que mfplat.dll était manquant et était lié à Window Media Service.

Par conséquent, vous devez installer manuellement les fonctionnalités afin que vous puissiez obtenir une DLL liée au service Windows Media.

  1. Activer ou désactiver des fonctionnalités Windows
  2. Ignorer l'écran des rôles et aller directement à l'écran de fonctionnalité
  3. Sélectionnez "Expérience utilisateur" sous "Interfaces utilisateur et infrastructure".

Après cela, toutes les dll d'openv nécessaires seraient disponibles.

1
Biks

je souffrais du même problème "le chargement de DLL a échoué" après avoir lu des tonnes de réponses et d'articles que j'ai eu une solution.

je ne sais pas si cela fonctionne pour vous ou pas, mais essayez-le.

outils et versions utilisés: anaconda - 5.3.1, python - 3.7, win 10 (64 bit)

Les étapes que j'ai effectuées:

step1: j’ai installé opencv 3.4.4 depuis ici puis extrait dans le lecteur C (vous pouvez le faire où vous voulez)

step2: copie le fichier cv2.pyd de [C:\opencv\build\python\cv2\python-3.7] ici vers [C:\Utilisateurs\"nom d'utilisateur"\Anaconda3\Lib\site-packages] ici.

step3: exécutez dependency walker pour détecter quels fichiers dll sont manquants, après avoir exécuté Depend Walker, dans mon cas, il était indiqué que deux fichiers DLL ne se chargeaient pas (1). ) OPENCV_WORLD344.DLL et (2) IESHIMS.DLL . Je ne suis pas au courant de votre situation, mais vous pouvez le faire -> rechercher le nom du fichier à l’aide de Dependency Walker, trouver son chemin et suivre l’étape 4.

step4: ouvrir la propriété système-> Avancé-> Variables d'environnement, modifier le chemin et ajouter C:\opencv\build\x64\vc14\bin (dans mon cas, c'était l'endroit où OPENCV_WORLD344.DLL est stocké) et Après cela, importez cv2 en python.

Si ma réponse ne fonctionne pas, ajoutez un commentaire.

0
Rhythm sharma

J'ai eu un problème similaire, sauf que j'utilise Anaconda3 et que ce code l'a résolu ici: 

conda install -c anaconda py-OpenCV
0
Omda asli