PIL: le chargement de la DLL a échoué: la procédure spécifiée est introuvable
J'ai commencé à travailler avec des images en Python et je voulais commencer à utiliser PIL (Pillow). Pour l'installer, j'ai couru pip install Pillow
. Lors de l'installation, PIL n'a pas été installé auparavant. J'ai également essayé de le désinstaller et de le réinstaller, ainsi que d'utiliser pip3 install Pillow
.
Quand je l'exécute en Python, ma première ligne est:
File "C:Program FilesPython36libsite-packagesPILImage.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 sous le dossier PIL.
Pourquoi cela se produit - il si la DLL nécessaire est là? Comment puis-je résoudre ce problème?
7 réponses
J'ai eu ce problème aussi avec Python 3.6. J'ai juste évité le problème en désinstallant pillow (4.1.0), puis en installant une ancienne version de pillow (4.0.0). Il semble fonctionner correctement avec l'ancienne version.
Comme dans la réponse de Sean, j'ai dû désinstaller (j'utilise Anaconda Python 3.6, BTW) avec
conda uninstall pillow
Je l'ai essayé avec PIL, mais il n'y avait pas un tel paquet. Désinstaller pillow signifiait également 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 testé avec
python -c "from PIL import Image"
Qui, en cas de succès, 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
Ce problème est également corrigé en mettant à niveau Python vers 3.6.1, par cette discussion GitHub.
La différence est que Pillow 4.1.0 a été construit avec Python 3.6.1 tandis que Pillow 4.0.0 a été construit avec Python 3.6.0.
Apparemment
PYTHON36.DLL
de python 3.6.0 manque des fonctions (PySlice_AdjustIndices
etPySlice_Unpack
) qui sont utilisées lors de la construction avec Python 3.6.1.La solution consiste à mettre à niveau vers Python 3.6.1.
Il y a un problème en Python lui-même, ce qui signifie que les roues binaires construites en utilisant 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, il y a la nouvelle version de pillow 4.1.1 qui fonctionne autour de cela, donc vous pouvez maintenant mettre à jour vers Pillow 4.1.1 et l'utiliser avec Python 3.6.0 et 3.6.1.
Plus info:
J'ai eu le même problème avec anaconda 5.0.1, en l'utilisant avec caffe sur windows 10. je viens de le faire
conda install PIL
Ça a marché pour moi.
Cela fonctionne pour moi en utilisant win10 et PY 3.6. Il suffit de désinstaller oreiller 4.1.0 pip3 désinstaller oreiller Puis installez oreiller 4.0.0 pip3 installer Oreiller==4.0.0
Si vous utilisez Anaconda, essayez
conda uninstall pillow
et puis pip install pillow
Est tombé sur ce problème en travaillant sur Caffe2 sur Windows 10 (anaconda 4.5) et cela a fonctionné pour moi. Voici le GitHub post sur ce problème.