py2exe中Tkinter的问题

4 投票
3 回答
5939 浏览
提问于 2025-04-16 05:33

我用Python的tkinter做了一个简单的图形界面程序,然后想用py2exe把它转换成.exe文件。但是,我遇到了一个问题。当我尝试运行这个.exe时,它会快速闪现一个错误信息,然后就消失了。所以我只能拍个截图来记录这个错误。

我该怎么解决这个问题呢?

alt text

编辑

大家,这是我的设置文件。它基本上就是最简单的那种。我该怎么把init.tcl整合到代码里呢?

from distutils.core import setup
import py2exe

setup(console=[r'C:\Python26\Random Password Generator.py'])

3 个回答

0

我在virtualenv网站上发现了一个bug,建议大家查看这个链接:https://github.com/pypa/virtualenv/issues/93

如果你是在Windows系统上,找到你的目录"C:\Environments\VirtualEnv\Scripts\activate.bat",然后在里面添加正确的TCL和TK路径,确保它们与你的Python版本匹配。

set "TCL_LIBRARY=C:\Python27\tcl\tcl8.5" 
set "TK_LIBRARY=C:\Python27\tcl\tk8.5" 

重启你的命令提示符或终端。

我觉得TCL的位置可能已经从默认位置改变了。

0

确保在 C:\Users\splotchy\lib\tcl8.5C:\Users\lib\tcl8.5 这个位置安装了tcl。

如果你想让错误信息显示得久一点,可以在命令提示符下运行你的程序。

5

你的 setup.py 脚本里有没有在 data_files 选项中包含 init.tcl 文件?根据 py2exe 的选项列表,这是包含图片和其他必要数据文件的正确方法。

编辑:

你的设置脚本指定了程序应该转换成控制台的 exe 文件。如果你想要一个图形界面的程序(你确实想要,因为你在使用 Tkinter),你需要使用 windows 选项:

setup(windows=[r'C:\Python26\Random Password Generator.py'])

Py2exe 应该能正确包含 Tkinter 的依赖项。如果没有,你可以手动添加 init.tcl 文件:

setup(data_files=['C:\Python26\tcl\tcl8.5\init.tcl'],
      windows=[r'C:\Python26\Random Password Generator.py'])

撰写回答