2010-11-17 64 views
1

我试图将使用.png图像的GUI程序转换为使用py2exe的.exe。它使用PIL来显示这些图像。但是,我在转换时遇到了麻烦。由于某些原因,它使得.exe不会运行。有任何想法吗?PIL和py2exe的问题

编辑

错误:

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) 
+0

什么是错误?你是否在'setup.py'文件中包含'PIL'模块? – user225312 2010-11-17 08:15:21

+0

查看我的编辑信息。 – rectangletangle 2010-11-17 08:20:15

回答

1

你怎么显示图像?

也许PIL使用tcl/tk来img.show(),这就是为什么你应该在你的py2exe安装脚本中包含tcl。

+0

请参阅编辑2.我在Tkinter中使用了Image.open()方法。 – rectangletangle 2010-11-17 23:11:04

+0

所以,你是否试图强制安装tk/tcl?在py2exe的文档中有关于它的注释。 – 2010-11-27 12:09:58

1

万一有人在发生这个问题,我能够在我的setup.py文件添加init.tcl中我的“data_files”部分修正此错误消息:

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