PIL和py2exe的问题

1 投票
2 回答
908 浏览
提问于 2025-04-16 07:12

我正在尝试把一个使用 .png 图片的图形界面程序转换成 .exe 文件,使用的是 py2exe。这个程序用 PIL 来显示这些图片。不过,我在转换的时候遇到了问题。生成的 .exe 文件似乎无法运行。有没有什么建议?

编辑

错误信息:

Traceback (most recent call last):
  File "GUI1.2.8.py", line 454, in <module>
  File "GUI1.2.8.py", line 13, in __init__
  File "Tkinter.pyc", line 1643, in __init__
_tkinter.TclError: Can't find a usable init.tcl in the following directories: 
    {C:/Users/rectangletangle/lib/tcl8.5} {C:/Users/rectangletangle/lib/tcl8.5} C:/Users/lib/tcl8.5 {C:/Users/rectangletangle/library} C:/Users/library C:/Users/tcl8.5.8/library C:/tcl8.5.8/library



This probably means that Tcl wasn't installed properly.

这个错误看起来和我做的事情完全无关(如果我在使用 py2exe 时出错,通常会出现这个错误)。在我导入和使用 PIL 之前,一切都正常。此外,我在我的设置文件中也包含了 PIL。

编辑 2

这里有一段代码,展示了我如何使用这个图片。

self.image = ImageTk.PhotoImage(Image.open("image.png"))
self.imageLabel = Tkinter.Label(self, image=self.image)
self.imageLabel.grid(column=0, columnspan=4, row=0)

2 个回答

1

如果有人遇到这个问题,我通过在我的setup.py文件的“data_files”部分添加init.tcl来解决了这个错误信息:

setup(data_files=['D:\\Python27\\tcl\\tcl8.5\\init.tcl',
      windows=["script":'myfile.py')])
1

你怎么显示图片呢?

可能是因为PIL这个库使用了tcl/tk来显示图片,所以你在设置py2exe的时候需要把tcl也包含进去。

撰写回答