Tkinter Cxfreeze错误

时间:2010-10-08 05:47:50

标签: python windows tkinter exe

我正在尝试使用我在Linux中开发的python在Windows中创建一个exe。该程序在Windows下的python中自行运行,当我使用cxfreeze时,它完成并生成exe。但是,当我运行它时,我得到:

C:\projects\0802001S\dist>listen.exe
Traceback (most recent call last):
  File "C:\Python26\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27
, in <module>
    exec code in m.__dict__
  File "./listen.py", line 425, in <module>
  File "C:\Python26\lib\lib-tk\Tkinter.py", line 1643, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, want
objects, useTk, sync, use)
_tkinter.TclError: Can't find a usable init.tcl in the following directories:
    C:/projects/0802001S/lib/tcl8.5 C:/projects/0802001S/lib/tcl
8.5 C:/projects/lib/tcl8.5 C:/projects/0802001S/library C:/projects/libr
ary C:/projects/tcl8.5.9/library C:/tcl8.5.9/library

这可能意味着Tcl安装不正确。

然后,我在我的C:盘中的Python26目录中查找init.tcl,并将其复制到它建议的其中一个目录中。然后,这给了我这个错误:

C:\projects\0802001S\dist>listen.exe
Traceback (most recent call last):
  File "C:\Python26\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27
, in <module>
    exec code in m.__dict__
  File "./listen.py", line 425, in <module>
  File "C:\Python26\lib\lib-tk\Tkinter.py", line 1643, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, want
objects, useTk, sync, use)
_tkinter.TclError: invalid command name "tcl_findLibrary"

此时我似乎遇到了障碍,并记住我为什么首先切换到Linux。

来自更熟悉Windows的人的任何建议?

1 个答案:

答案 0 :(得分:1)

我刚遇到类似的事情。到目前为止我得出的结论是将tcl8.5和tk8.5都复制到你运行listen.exe(dist / build dir)的目录中。

我也在cx_freeze邮件列表上,并提到有关钩子可能只在Unix上运行,因为它从未在Windows中进行过当前版本的测试(12/29/10)