Skip to content Skip to sidebar Skip to footer

How Do I Fix The "image "pyimage10" Doesn't Exist" Error, And Why Does It Happen?

I am making a tkiner application and that shows a user a page with some basic information and a picture before allowing them to click a button to view live Bitcoin price data. Howe

Solution 1:

Like @joost-broekhuizen, I've had the same problem using Tkinter together with matplotlib.pyplot functions. Adding a 'master' to the PhotoImage function solved the problem for me.

Broken code (raises: TclError: image "pyimage10" doesn't exist):

import matplotlib
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import matplotlib.pyplot as plt
import Tkinter as tk
from PIL import Image, ImageTk

fig = plt.figure()

root = tk.Tk()
image = Image.open("background.png")
photo = ImageTk.PhotoImage(image)
label = tk.Label(root, image=photo)
label.image = image
label.pack()

root.mainloop()

Adding 'master=root' to PhotoImage solved this error!

photo = ImageTk.PhotoImage(image, master=root)

Solution 2:

You can not load a .png format with tkinter. You rather need to use the PIL library for that:

import PIL

image = PIL.Image.open("bitcoin.png")
BTC_img = PIL.ImageTk.PhotoImage(image)
BTC_img_label = tk.Label(self, image=BTC_img)
BTC_img_label.image = BTC_img
BTC_img_label.grid(row=2, column=0)

EDIT:

Please, create a test.py file and run this EXACT code:

import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()    
image = Image.open("bitcoin.png")
photo = ImageTk.PhotoImage(image)
label = tk.Label(root, image=photo)
label.image = photo
label.grid(row=2, column=0)
#Start the program
root.mainloop()

Tell me if you get an error or not.

Solution 3:

I had the same problem. The problem was importing matplotlib.pyplot in the same program or in another py file from which you import definitions. Use Canvas for your plots instead

Solution 4:

This problem can be solved by adding master=root in Photoimage Constructor

like for e.g.

pic=Photoimage(master=self.root,file='mypic.png')
Label(self.root,image=pic).pack()

Post a Comment for "How Do I Fix The "image "pyimage10" Doesn't Exist" Error, And Why Does It Happen?"