首先,我对python很陌生,很抱歉漏掉了一些信息。
我目前正在尝试编译一个正在运行的脚本到一个exe文件中。正如我所提到的,这个脚本在python (anaconda 3)中运行得很好。我在auto tp-exe gui中使用了pyinstaller。它将我的文件编译成一个exe,但是当我试图运行它时,它就不能工作了。
我使用了以下选项:
pyinstaller --noconfirm --onedir --windowed ""当然有文件路径。我得到以下错误:
Traceback (most recent call last):
File "MAIN_INTERFACE.py", line 2673, in <module>
File "MAIN_INTERFACE.py", line 343, in __init__
File "tkinter\__init__.py", line 2790, in create_image
File "tkinter\__init__.py", line 2776, in _create
_tkinter.TclError: image "pyimage10" doesn't exist有人知道该怎么做吗?
发布于 2022-08-17 21:51:43
在没有源代码的情况下,我实际上无法准确判断,但这个严重的问题似乎与python垃圾收集器有关(听起来可能有点像SAdd.6,但实际上并非如此):
我可以想象,您的代码如下所示:
my_tkinstance = Tk()
my_image = PhotoImage("path_to_image")
my_label = Label(my_tkinstance, image=my_image)
my_label.pack()
my_tkinstance.mainloop()如果我们仔细考虑,解释器可以处理这些代码,我们就可以得出如下结论:
为了防止这种情况发生,您必须修改如下代码: my_tkinstance = Tk()
my_image = PhotoImage("path_to_image")
my_label = Label(my_tkinstance, image=my_image)
my_label.image = my_image
my_label.pack()
my_tkinstance.mainloop()通过这种方式,您可以在python代码的不同部分引用图像(可以这么说),垃圾收集器也不会删除图像。
希望这会有所帮助:)
https://stackoverflow.com/questions/73391666
复制相似问题