web-dev-qa-db-fra.com

Image.open () ne peut pas identifier le fichier image - Python?

J'exécute Python 2.7 dans Visual Studio 2013. Le code fonctionnait auparavant correctement dans Spyder, mais lors de l'exécution:

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 les 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-ce vrai et comment puis-je le réparer?


Comme suggéré, j'ai utilisé le programme d'installation de Pillow 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

Tous échouent!

38
Sibbs Gambling

J'ai eu le même problème.

from PIL import Image

au lieu de

import Image

corrigé le problème

67
naoko

Donc, après avoir lutté avec ce problème pendant un certain temps, voici ce qui pourrait vous aider:

from PIL import Image

au lieu de

import Image

De plus, si votre fichier image ne se charge pas et que vous obtenez une erreur "Aucun fichier ou répertoire", procédez comme suit:

path=r'C:\ABC\Users\Pictures\image.jpg'

puis ouvrez le fichier

image=Image.open(path)
15
musicakc

d'abord, vérifiez la version de votre oreiller

python -c 'import PIL; print PIL.PILLOW_VERSION'

J'utilise pip install --upgrade pillow mettre à niveau la version de 2.7 à 2.9 (ou 3.0) corrige ce problème.

5
iamsk

Dans mon cas .. j'avais déjà "de PIL import Image" dans mon code.

L'erreur s'est produite pour moi car le fichier image était toujours en cours d'utilisation (verrouillé) par une opération précédente de mon code. J'ai dû ajouter un petit délai ou tenter d'ouvrir le fichier en mode ajout dans une boucle, jusqu'à ce que cela n'échoue pas. Une fois que cela n’avait pas échoué, cela signifiait que le fichier n’était plus utilisé, je pouvais continuer et laisser PIL l’ouvrir maintenant.

2
panofish

Dans mon cas, le fichier image venait juste d'être écrit et devait être vidé avant ouverture, comme suit:

img_file.flush() 
img = Image.open(img_file.name))
2
jchmyz

Cela ressemble à un problème d'autorisations. Je faisais face à la même erreur. Mais quand je l'ai lancé à partir du compte root, cela a fonctionné. Donc, accordez l’autorisation de lecture au fichier en utilisant chmod (sous Linux) ou exécutez votre script après vous être connecté en tant qu’utilisateur root.

1
Anoop Sharma

Si vous utilisez Anaconda sur Windows, vous pouvez ouvrir l'application Anaconda Navigator et accéder à Environnement section et recherchez pillow dans les bibliothèques installées et marquez-le pour la mise à niveau vers la dernière version en cliquant avec le bouton droit de la souris sur la case à cocher.

Capture d'écran pour référence: enter image description here

Cela a corrigé l'erreur suivante:

PermissionError: [WinError 5] Access is denied: 'e:\\work\\anaconda\\lib\\site-packages\\pil\\_imaging.cp36-win_AMD64.pyd'
1
ThinkFloyd

Dans mon cas, c’était parce que les images que j’utilisais étaient stockées sur un Mac, ce qui générait de nombreux fichiers cachés comme .image_file.png, de sorte qu’ils ne correspondaient même pas aux images dont j’avais besoin et que je pouvais ignorer cet avertissement ou le supprimer en toute sécurité. les fichiers cachés. C'était juste un oubli dans mon cas.

1
pinkie pAI

Dans mon cas, il y avait une image vide dans le dossier. Après avoir supprimé les fichiers .jpg vides, cela fonctionnait normalement.

0
DavidCH12345