File "D:\python\python3.7\lib\tkinter\__init__.py", line 3489, in __init__ raise RuntimeError('Too early to create image') RuntimeError: Too early to create image Exception ignored in: <function PhotoImage.__del__ at 0x0000024558830948> Traceback (most recent call last): File "D:\python\python3.7\lib\site-packages\PIL\ImageTk.py", line 132, in __del__ name = self.__photo.name AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'这个报错为什么
时间: 2023-09-10 17:12:03 浏览: 300
code09_tkinter_login.pyw_python_tkinter_notepad.pyw_
这个报错是由于 `tkinter` 库中的 `PhotoImage` 对象在被销毁时,其内部的 `_PhotoImage__photo` 属性没有被正确清除引起的。这个属性是 `PhotoImage` 对象的一个私有属性,用于存储图像数据。在销毁 `PhotoImage` 对象时,`tkinter` 库会尝试清除这个属性,但是由于某些原因,这个属性没有被正确清除,从而导致上述报错。
通常这个报错会在使用 `tkinter` 库中的图像组件(如 `Label`、`Canvas`等)时出现,可能是因为在创建图像组件时,还没有创建任何图像对象,导致 `PhotoImage` 对象被销毁时无法正确清除其内部属性。可以尝试在创建图像组件时,先创建一个空的 `PhotoImage` 对象,或者在创建图像对象时,先将其赋值给一个变量,再将其作为参数传递给图像组件。
阅读全文