Image.open () no puede identificar el archivo de imagen – Python?

Estoy ejecutando Python 2.7 en Visual Studio 2013. El código anteriormente funcionaba bien cuando estaba en Spyder, pero cuando ejecutaba:

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') 

Acabo con los siguientes errores:

 Traceback (most recent call last): File "", line 1, in  File "C:\cimtrack_v1\PythonApplication1\dr\trajgen.py", line 19, in  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 

¿Por qué es así y cómo puedo arreglarlo?


Como se sugirió, he usado el instalador de almohadas para mi Python 2.7. Pero extrañamente, termino con esto:

 >>> from PIL import Image Traceback (most recent call last): File "", line 1, in  ImportError: No module named PIL >>> from pil import Image Traceback (most recent call last): File "", line 1, in  ImportError: No module named pil >>> import PIL.Image Traceback (most recent call last): File "", line 1, in  ImportError: No module named PIL.Image >>> import PIL Traceback (most recent call last): File "", line 1, in  ImportError: No module named PIL 

¡Todos fallan!

Tuve un mismo problema

 from PIL import Image 

en lugar de

 import Image 

arreglado el problema

Así que después de luchar con este problema durante bastante tiempo, esto es lo que podría ayudarte:

 from PIL import Image 

en lugar de

 import Image 

Además, si su archivo de imagen no se está cargando y aparece el mensaje “No hay archivo o directorio”, debería hacer esto:

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

y luego abrir el archivo

 image=Image.open(path) 

Primero, revisa la versión de tu almohada.

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

Utilizo pip install --upgrade pillow upgrade pip install --upgrade pillow actualicé la versión de 2.7 a 2.9 (o 3.0).

En mi caso … ya tenía “desde la imagen de importación PIL” en mi código.

El error ocurrió para mí porque el archivo de imagen todavía estaba en uso (bloqueado) por una operación previa en mi código. Tuve que agregar una pequeña demora o intentar abrir el archivo en modo agregado en un bucle, hasta que no haya fallado. Una vez que eso no falló, significaba que el archivo ya no estaba en uso y podía continuar y dejar que PIL ahora pudiera abrir el archivo.

Si está utilizando Anaconda en Windows, puede abrir la aplicación Anaconda Navigator, ir a la sección Entorno , buscar una almohada en las bibliotecas instaladas y marcarla para actualizarla a la última versión haciendo clic derecho en la checkbox.

Captura de pantalla para referencia: introduzca la descripción de la imagen aquí

Esto ha solucionado el siguiente error:

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

Parece un problema de permisos. Estaba enfrentando el mismo error. Pero cuando lo ejecuté desde la cuenta raíz, funcionó. Entonces, dé el permiso de lectura al archivo usando chmod (en linux) o ejecute su script después de iniciar sesión como usuario root.

En mi caso había una imagen vacía en la carpeta. Después de eliminar los .jpg vacíos funcionó normalmente.