我正在尝试用我在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 的人有什么建议吗?
最佳答案
我刚刚遇到了类似的事情。到目前为止,我得出的结论是将 tcl8.5 和 tk8.5 复制到运行 Listen.exe 的目录(dist/build dir)中。
我也在 cx_freeze 邮件列表中,其中提到该钩子(Hook)可能只在 Unix 上运行,因为截至当前版本 (12/29/10),它从未在 Windows 中进行过测试
关于python - Tkinter Cxfreeze 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3888011/