74 votes

Erreur de chargement de DLL lors de l'importation de cv2

J'ai installé opencv sur ma machine Windows en utilisant python 3.6 sans aucun problème, en utilisant :

pip install opencv-python

mais lorsque j'essaie d'importer cv2, j'obtiens l'erreur suivante

ImportError: DLL load failed: The specified module could not be found.

J'ai vu ce poste

Il est indiqué que cv2 ne fonctionne pas avec python 3. Je me demandais si cela avait été corrigé ou s'il existait un moyen de contourner le problème.

0 votes

La dernière version de python supportée par OpenCV est 3.5 et non 3.6.

1 votes

@kmario23 : J'ai essayé avec Python 3.5.0 et j'obtiens toujours la même erreur.

0 votes

Consultez la réponse de @tientuyen07, elle fonctionne pour moi. Pour python3.7.0 sur Windows10.

72voto

tientuyen07 Points 191

J'ai pris beaucoup de temps pour résoudre cette erreur ! Exécuter la commande

pip install opencv-contrib-python

2 votes

Il y a plusieurs questions sur ce sujet, mais je trouve que la plateforme n'est pas Windos10 + Python3.7.0. Et votre réponse fonctionne pour moi. Merci beaucoup.

1 votes

A fonctionné pour moi. J'avais installé opencv-python et d'autres choses, mais c'était la dernière chose à faire.

0 votes

J'ai vraiment économisé beaucoup de temps !

55voto

thewaywewere Points 3784

Vous pouvez télécharger la dernière version d'OpenCV 3.2.0 pour Python 3.6 sur une machine Windows 32-bit ou 64-bit, recherchez le fichier commençant par opencv_python3.2.0cp36cp36m à partir de ce site non officiel . Puis tapez la commande ci-dessous pour l'installer :

  • pip install opencv_python3.2.0cp36cp36mwin32.whl (version 32 bits)
  • pip install opencv_python3.2.0cp36cp36mwin_amd64.whl (version 64 bits)

Je pense que ce serait plus facile.

Mise à jour le 2017-09-15 :

OpenCV 3.3.0 Les fichiers de roues sont maintenant disponibles dans le site non officiel et remplacé OpenCV 3.2.0 .

Mise à jour le 2018-02-15 :

OpenCV 3.4.0 Les fichiers de roues sont maintenant disponibles dans le site non officiel et remplacé OpenCV 3.3.0 .

Mise à jour le 2018-06-19 :

OpenCV 3.4.1 Les fichiers de roues sont maintenant disponibles dans le site non officiel avec CPython 3.5/3.6/3.7 et remplacé OpenCV 3.4.0 .

Mise à jour le 2018-10-03 :

OpenCV 3.4.3 Les fichiers de roues sont maintenant disponibles dans le site non officiel avec CPython 3.5/3.6/3.7 et remplacé OpenCV 3.4.1 .

Mise à jour le 2019-01-30 :

OpenCV 4.0.1 Les fichiers de roues sont maintenant disponibles dans le site non officiel avec CPython 3.5/3.6/3.7 soutien.

Mise à jour le 2019-06-10 :

OpenCV 3.4.6 et OpenCV 4.1.0 Les fichiers de roues sont maintenant disponibles dans le site non officiel avec CPython 3.5/3.6/3.7 soutien.

0 votes

UNE MISE À JOUR : opencv3.2.0 avec opencv_contrib binaires pour Python 3.5 and 3.6 peuvent désormais être téléchargés à partir de la page site non officiel . L'entrée Look for se compose de +contrib dans le nom du fichier. Par exemple, opencv_python3.2.0+contribcp35cp35mwin_amd64.whl .

0 votes

La condition 'opencv_python-3.2.0-cp36-cp36m-win_amd64.whl' ressemble à un nom de fichier, mais le fichier n'existe pas.

0 votes

Il semble que opencv 3.2 for python 3.x sont supprimés après mon UPDATE. Vous pouvez utiliser opencv 3.3 .

40voto

Ramesh-X Points 783

Si vous utilisez Anaconda avec python 3.5 il s'agit d'un problème dans la version d'Anaconda. (Voir cette numéro )

Vous pouvez résoudre ce problème en copiant python3.dll pour Anaconda3 (où python.exe est situé)

Comment obtenir " python3.dll " ?

  • Sur cmd , type python --version pour savoir si votre installation est 64 bits ou 32 bits
  • télécharger le fichier zip intégrable de python 3.x à partir de ici
  • Extrayez le fichier zip et copiez python3.dll pour Anaconda3 dossier

Mais si vous pouvez passer à Anaconda avec python 3.6 vous ne serez pas confronté à ce problème. Si c'est possible pour vous, alors c'est le moyen recommandé

1 votes

Cela fonctionne très bien... après avoir passé 4 heures, je suis tombé sur ce post... cela m'a beaucoup aidé. j'utilise actuellement Anaconda3-4.1.1-Windows-x86_64 avec Python 3.5.2 : : Continuum Analytics, Inc.

9voto

ShitalShah Points 2213

Après avoir passé trop de temps sur cette question et essayé toutes les réponses différentes, voici ce que j'ai trouvé :

  • La réponse acceptée de @thewaywewere n'est plus applicable. Je pense qu'elle était applicable lorsque le module opencv-python n'était toujours pas disponible.

  • Il s'agit en effet d'un bogue dans Anaconda 4.2 car ils ont oublié de livrer python3.dll. Ils ont corrigé ce problème dans les prochaines versions mais malheureusement la 4.2 est la dernière version avec Python 3.5 par défaut. Si vous êtes coincé avec Python 3.5 (par exemple VS2015 n'est conscient que des versions jusqu'à 3.5), vous devez télécharger manuellement python3.dll comme décrit dans la réponse de @Ramesh-X.

  • Si vous pouvez passer à Python 3.6 (ce qui est actuellement un peu difficile si vous utilisez OpenCV et VS2015), installez simplement la dernière version d'Anaconda et vous n'aurez plus à vous occuper de tout cela.

0 votes

Le bogue d'Anaconda a été résolu. Les meilleurs commentaires que j'ai trouvés sur opencv et j'ai écrit le dépannage de opencv-dll-load-failed après coup.

6voto

Valentin Heinitz Points 1231

Il y a beaucoup de questions à ce sujet et de nombreuses suggestions. Aucune d'entre elles ne m'a aidé pour le récent Opencv 3.4.16 et Python 3.6/3.7. Finalement, je suis passé à Pyhon 2.7.15 et j'ai installé Opencv 3.1.0. Le problème de DLL a été résolu.

Quand je regarde dans cv2.pyd avec dependency walker, la 3.1 n'a pas de dépendance pour une dll manquante. Opencv 3.4 a cette dépendance manquante à cette dll :

API-MS-WIN-DOWNLEVEL-SHLWAPI-L1-1-0.DLL

C'est peut-être là le problème.

P.S. : J'ai Win7 pofessional 64Bit, 32Bit Python 2.7.15

2 votes

Aucune des autres réponses n'a aidé, mais celle-ci l'a fait. Le passage de opencv-python de 3.4 à 3.1.0.5 a fonctionné.

3 votes

Merci mon frère, c'est la meilleure solution. Ceux qui ont eu la même erreur ne dégradent pas la version mais collent ce fichier dll dans system32 et systemWOW64.

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