python image tkinter

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