Image.open() ne peut pas identifier le fichier image - Python?
Je suis sous Python 2.7 dans Visual Studio 2013. Le code déjà travaillé sur ok lorsque en Spyder, mais quand je le lance:
import numpy as np
import scipy as sp
import math as mt
import matplotlib.pyplot as plt
import Image
import random
# (0, 1) is N
SCALE = 2.2666 # the scale is chosen to be 1 m = 2.266666666 pixels
MIN_LENGTH = 150 # pixels
PROJECT_PATH = 'C:\\cimtrack_v1'
im = Image.open(PROJECT_PATH + '\\ST.jpg')
Je me retrouve avec des erreurs suivantes:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\cimtrack_v1\PythonApplication1\dr\trajgen.py", line 19, in <module>
im = Image.open(PROJECT_PATH + '\\ST.jpg')
File "C:\Python27\lib\site-packages\PIL\Image.py", line 2020, in open
raise IOError("cannot identify image file")
IOError: cannot identify image file
Pourquoi est-il si et comment puis-je résoudre ce problème?
Comme suggéré, j'ai utilisé l'Oreiller installer pour mon Python 2.7. Mais bizarrement, je me retrouve avec ceci:
>>> from PIL import Image
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named PIL
>>> from pil import Image
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pil
>>> import PIL.Image
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named PIL.Image
>>> import PIL
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named PIL
Tout fail!
- Le fichier existe et est de bon format?
- Oui, il existe. J'ai testé son existence par le déplacement de quelque part d'autre, et le message d'erreur devient "Aucun fichier". Le format est .jpg. Avant j'ai importé avec succès.
- Peut-être essayer avec un autre fichier image? Votre image est peut-être endommagé.
- Avez-vous
libjpeg-dev
installé? Ou, en d'autres termes, nePIL
impression--- JPEG support available
lors de l'installation? - J'ai essayé, mais le même :/
- dois-je installer quelque choses en plus?? J'ai pensé qu'il vient naturellement comme dans Spyder?
- Vous avez besoin d'avoir des bibliothèques pour gérer spécifique de l'image des extensions. Si vous ne
pip install -U PIL
, à la fin de la sortie, il devrait vous dire quelles sont les extensions disponibles. Aussi, je suggère de désinstallerPIL
et l'installation depillow
au lieu de cela, il gère automatiquement associant les bibliothèques à des répertoires spécifiques. Autre que cela, c'est une enveloppe de plus de régulièresPIL
. - Merci pour l'adive je viens d'installer l'Oreiller. Mais pourquoi: >>> from PIL import Image Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named PIL >>> ?
- Avez-vous désinstallé
PIL
et installépillow
? Aussi, assurez-vous que vous avez installé dans le bon virtualenv. Installation avecsudo
de l'installer dans votre virtualenv. - Oui, unistalled PIL et installé sur l'oreiller. Je suis en Windows btw
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème identique.
au lieu de
correction du problème
img2pdf.py
est soudainement incapable d'ouvrir les fichiers Jpeg plus. quelqu'un Peut-il expliquer la raison pour laquelle cette importation, déclaration de changement de changements de comportement? j'ai vérifié, et le seulImage.py
soussite-packages
est celui dePIL
. Je pensais quefrom ... import ...
devrait fonctionner de la même manière avecimport ...
, autre que la façon dont il place l'objet dans l'espace de noms global, dans ce cas, il doit être parfaitement identiques, non?PIL/ImageTk
from PIL import Image
est utilisé. À l'aide deimport Image
crée deux instances de l'Image module, et a recueilli des plugins pour traiter les imagesImage.ID
est dupliqué trop. L'un rempli avec les plugins, les autres vides. Votre code utilise un vide. Plus ici github.com/python-pillow/Pillow/pull/1898Donc, après avoir lutté avec ce problème depuis un certain temps, c'est ce qui pourrait vous aider:
au lieu de
Aussi, si votre fichier Image ne se charge pas et vous obtenez une erreur "Aucun fichier ou répertoire", alors vous devez faire ceci:
puis ouvrez le fichier
tout d'abord, vérifiez votre oreiller version
- Je utiliser
pip install --upgrade pillow
de mise à niveau de la version de 2,7 à 2,9(ou 3.0) fixe cette.Dans mon cas.. j'ai déjà eu "de PIL import Image" dans mon code.
L'erreur s'est produite pour moi parce que le fichier image est toujours en usage (verrouillé) par une opération précédente dans mon code. J'ai dû ajouter un peu de retard ou d'essayer d'ouvrir le fichier en mode ajout dans une boucle, jusqu'à ce que n'ont pas manqué. Une fois que n'a pas manqué, ça signifiait que le fichier n'est plus utilisé et j'ai pu continuer et laissez PIL peut maintenant ouvrir le fichier.
Si vous utilisez Anaconda sur windows alors vous pouvez ouvrir Anaconda Navigator application et allez dans Environnement section et de recherche pour oreiller dans les bibliothèques installées et le marquer pour la mise à niveau à la dernière version en cliquant droit sur la case à cocher.
Capture d'écran pour la référence:
Cela a corrigé l'erreur suivante:
Semble comme un Problème d'Autorisations. J'ai été confronté à la même erreur. Mais quand je l'ai couru à partir de la racine du compte, cela a fonctionné. Donc, soit donner l'autorisation de lecture sur le fichier à l'aide de la commande chmod (sous linux) ou d'exécuter le script après l'ouverture de session en tant qu'utilisateur racine.
Dans mon cas, le fichier image venait d'être écrit et doit être rincé avant l'ouverture, comme suit:
Dans mon cas, c'était parce que les images que j'ai utilisées étaient stockées sur un Mac, ce qui génère de nombreux fichiers cachés comme .image_file.png, de sorte qu'ils s'est avéré être même pas l'image que j'avais besoin et j'ai pu ignorer l'avertissement ou de supprimer les fichiers cachés. C'était juste un oubli dans mon cas.
Dans mon cas, il y avait un vide d'image dans le dossier. Après la suppression du vide .jpg il a travaillé normalement.
Pour tous ceux qui en font à plus grande échelle, vous devrez également vérifier le nombre de descripteurs de fichiers que vous avez. Il va lancer cette erreur si vous avez manqué au mauvais moment.