Tkinter pyimage不存在

时间:2014-06-17 22:06:35

标签: python image tkinter python-imaging-library

我知道有很多类似的问题,但没有任何简单的我能够理解。我有以下代码:

import Tkinter as tk
from PIL import Image, ImageTk

class MainWindow:
    def __init__(self, master):
        canvas = Canvas(master)
        canvas.pack()
        self.pimage = Image.open(filename)
        self.cimage = ImageTk.PhotoImage(self.pimage)
        self.image = canvas.create_image(0,0,image=self.cimage)


filename = full_filename
root = tk.Tk()
x = MainWindow(root)
mainloop()

我收到以下错误:

TclError: image "pyimage36" doesn't exist

我已经阅读了一些关于图像对象被垃圾清理的东西,但我不太明白。

3 个答案:

答案 0 :(得分:11)

想出来。出于某种原因,在调试器中运行时,如果任何先前的执行抛出错误,我会得到“pyimage不存在”错误。但是,如果我重新启动调试器(或者以前没有执行的脚本抛出错误),那么程序运行正常。

答案 1 :(得分:0)

在使用spyder 3.3.6时,我遇到了相同的错误消息,只有在收到“修补程序pyimage错误”后才能加载并显示.png文件的唯一方法是转到控制台并重新启动内核。之后,我工作得很好。

答案 2 :(得分:-2)

<块引用>

来自程序员的追求

图像“pyimage1”不存在 因为一个程序中只能有一个根窗口,即只能存在一个Tk(),其他窗口只能以顶级窗口(Toplevel())的形式存在。

原始代码

import tkinter as tk
window = tk.TK()

修改后的代码

import tkinter as tk
window = tk.Toplevel()

保持其他代码不变

https://www.programmersought.com/article/87961175215/