使用Tkinter时,错误:TclError:图像“pyimage8”不存在

时间:2018-04-24 23:34:12

标签: python tkinter spyder

我一直收到错误,TclError:图片“pyimage8”不存在。 奇怪的是,每次运行它的数量都会增加?

我正在使用spyder运行python,dunno这是否会影响任何事情。 这是我的代码

#import the modules we need, for creating a GUI
import Tkinter as tk
from PIL import ImageTk, Image

homescreenImage = PhotoImage(file="Homescreen.gif") 

#create a GUI window.
root = Tk()
#set the title.
root.title("Welcome to the Pit!")
#set the size.
root.geometry("1100x700")

homescreenFrame = tk.Frame(root, width=1100, height = 700,)
homescreenFrame.pack()
homescreenLabel = tk.Label(homescreenFrame, image=homescreenImage)
homescreenLabel.pack()


#start the GUI
root.mainloop()

5 个答案:

答案 0 :(得分:1)

我发现我的脚本将运行一次,然后在后续运行中给我一个错误。如果重新启动控制台,它将再次运行。我通过在脚本开头使用以下代码解决了该问题:

import sys
if "Tkinter" not in sys.modules:
    from Tkinter import *

现在每次都可以使用。

答案 1 :(得分:0)

如果你import Tkinter as tk,你应该在调用tk时使用别名tk,例如。 root = tk.Tk()。否则Python将找不到Tk。

您不需要为此导入PIL

在创建Tk之前,您无法创建Photoimage。

试试这个:

import Tkinter as tk

root = tk.Tk()
root.title("Welcome to the Pit!")
root.geometry("1100x700")

homescreenImage = tk.PhotoImage(file="Homescreen.gif") 
homescreenFrame = tk.Frame(root, width=1100, height = 700,)
homescreenFrame.pack()
homescreenLabel = tk.Label(homescreenFrame, image=homescreenImage)
homescreenLabel.pack()

root.mainloop()

善待并将整个错误消息粘贴到您的问题中。

答案 2 :(得分:0)

以下可能是错误:

1)给出文件名的完整路径    例如:" /home/user/Homescreen.gif"

2)如果您使用的是Windows而上述方法不起作用:    使用" \\ C:\\ home \\ Homescreen.gif" (这是因为,窗户感到困惑)

3)如果那也不起作用,请确保你的python目录    程序与图像的程序相同。

4)此外,仅在创建根之后才创建photoimage    窗口。

5)由于某种原因,在调试器中运行时,如果有的话    执行已经抛出错误我得到了#34; pyimage不存在"错误。    但是,如果我重新启动调试器(或者以前没有执行过脚本)    抛出错误),然后程序运行正常。

6)另外,不要导入PIL,不需要它。

尝试以上所有内容,如果它没有工作让我知道。 希望这会有所帮助。

答案 3 :(得分:0)

就我而言,这是因为我忘记保留对图像的引用。创建标签后尝试添加此行:

homescreenLabel.image=homescreenImage.

答案 4 :(得分:0)

我认为这可能是由于:

tkinter 只支持 .png 格式的图片 但是,还有其他方法可以添加 .gif`` instead of PhotoImage```