python - _tkinter.TclError: la imagen "..." no existe
(1)
Sé que esta pregunta ya se ha hecho varias veces, pero todavía no pude encontrar la respuesta a mi problema. Sigo recibiendo el mismo error y no sé cómo resolverlo.
Este es mi código:
from Tkinter import *
from PIL import Image, ImageTk
import os
window = Tk()
i = Image.open(pathToImage)
if os.path.isfile(pathToImage):
print ''image exists''
else:
print ''image does not exits''
label=Label(window, image=i)
label.pack()
window.mainloop()
Dice que la imagen existe en la ruta indicada, pero sigo recibiendo este mensaje de error:
Traceback (most recent call last):
File "ImageTest.py", line 31, in <module>
label=Label(window, image=i)
File "C:/Users/username/Anaconda2/lib/lib-tk/Tkinter.py", line 2597, in __init__
Widget.__init__(self, master, ''label'', cnf, kw)
File "C:/Users/username/Anaconda2/lib/lib-tk/Tkinter.py", line 2096, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: image "<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=640x480 at 0x36DF278>" doesn''t exist
No pude encontrar la manera de resolver este problema. ¡Cualquier ayuda sería apreciada!
Debe usar la instancia de
PhotoImage
como valor de
image
.
Además, debe mantener la referencia de su imagen.
im = Image.open(pathToImage)
ph = ImageTk.PhotoImage(im)
label = Label(window, image=ph)
label.image=ph #need to keep the reference of your image to avoid garbage collection