55 votes

PIL : Le chargement de la DLL a échoué : la procédure spécifiée n'a pas pu être trouvée.

J'ai commencé à travailler avec des images en Python et je voulais commencer à utiliser PIL (Pillow). Pour l'installer, j'ai lancé pip install Pillow . Lors de l'installation, le LIP n'était pas déjà installé. J'ai également essayé de le désinstaller et de le réinstaller, ainsi que d'utiliser la fonction pip3 install Pillow .

Quand je l'exécute en Python, ma première ligne est :

File "C:\Program Files\Python36\lib\site-packages\PIL\Image.py", line 56, in <module>
from . import _imaging as core
ImportError: DLL load failed: The specified procedure could not be found.

J'ai vérifié le répertoire, et le fichier _imaging.cp36-win_amd64.pyd est présent dans le dossier PIL.

Pourquoi cela se produit-il si la DLL nécessaire est présente ? Comment puis-je le réparer ?

0 votes

Que se passe-t-il si vous renommez _imaging.cp36-win_amd64.pyd à _imaging.pyd ?

0 votes

J'ai essayé de faire ça, et ça n'a pas aidé. J'ai reçu la même erreur que précédemment.

0 votes

Quel est le Gagner sur laquelle vous travaillez (je soupçonne un décalage d'architecture) ?

56voto

Sean Points 409

J'ai également eu ce problème avec Python 3.6. J'ai évité le problème en désinstallant pillow (4.1.0) puis en installant une version plus ancienne de pillow (4.0.0). Il semble fonctionner correctement avec l'ancienne version.

5 votes

Désinstaller 4.1.0 et faire pip install Pillow==4.0.0 a fonctionné pour moi python 3.6.0, Windows 10

1 votes

Vous avez résolu ma journée ! Cela a fonctionné pour moi sous Win10 et python 3.6.0.

1 votes

Idem ! Ce n'est pas normal que le passage de la 4.0.0 à la 4.1 casse tout. Il devrait y avoir une sorte de test ou autre pour vérifier cela.

28voto

Ed Bernal Points 246

Comme dans la réponse de Sean, j'ai du désinstaller (j'utilise Anaconda Python 3.6, BTW) avec

conda uninstall pillow

J'ai essayé avec PIL, mais ce paquet n'existait pas. Désinstaller Pillow signifiait aussi désinstaller les paquets qui en dépendent, dans mon cas "anaconda-navigator" et "scikit-image". Après avoir réinstallé Pillow 4.0.0 avec

 conda install pillow=4.0.0

et l'a testé avec

python -c "from PIL import Image"

qui, s'il est réussi, vous ne voyez pas de message d'erreur, j'ai réinstallé les paquets qui ont été désinstallés avec Pillow 4.1.0.

conda install anaconda-navigator
conda install scikit-image

3 votes

Cela n'a pas fonctionné pour moi. J'utilise Windows 10 et Python 3.5.

1 votes

Sur Win10 avec Python 3.5 avec l'environnement conda. J'ai désinstallé pillow avec conda, réinstallé pillow avec pip. Et ensuite réinstallé scikit-image avec pip et anaconda-navigator avec conda (sans les dépendances installent '--no-deps').

11voto

rakidedigama Points 126

Si vous utilisez Anaconda, essayez de

conda uninstall pillow et ensuite pip install pillow

J'ai rencontré ce problème en travaillant sur Caffe2 sous Windows 10 (Anaconda 4.5) et cela a fonctionné pour moi. Voici le post github sur cette question.

4voto

Joseph Montanaro Points 149

Ce problème est également corrigé par la mise à niveau de Python vers la version 3.6.1, conformément à la procédure de mise à niveau de Python. cette discussion sur GitHub .

La différence est que Pillow 4.1.0 a été construit avec Python 3.6.1 alors que Pillow 4.0.0 a été construit avec Python 3.6.0.

Apparemment PYTHON36.DLL de Python 3.6.0 est dépourvue de fonctions ( PySlice_AdjustIndices et PySlice_Unpack ) qui sont utilisés lors de la construction avec Python 3.6.1.

La solution consiste à passer à Python 3.6.1.

1 votes

Pillow 4.1.1 est maintenant disponible. Vous pouvez l'utiliser pour Python 3.6.0 et 3.6.1. Plus d'informations : stackoverflow.com/a/43723021/724176

1 votes

Exécution de Python 3.6.4/Win64 conda install pillow=4.1.1 a finalement fait l'affaire. Aucune désinstallation préalable n'a été nécessaire.

4voto

Hugo Points 4722

Il y a un problème dans Python lui-même qui signifie que les roues binaires construites avec Python 3.6.1 (comme Pillow 4.1.0) ne s'installeront pas sur Python 3.6.0.

Cela a affecté un certain nombre de bibliothèques Python.

Cependant, la nouvelle version Pillow 4.1.1 contourne ce problème. Vous pouvez donc mettre à jour Pillow 4.1.1 et l'utiliser avec Python 3.6.0 et 3.6.1.

Plus d'informations :

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