py2exe中Tkinter的问题
我用Python的tkinter做了一个简单的图形界面程序,然后想用py2exe把它转换成.exe文件。但是,我遇到了一个问题。当我尝试运行这个.exe时,它会快速闪现一个错误信息,然后就消失了。所以我只能拍个截图来记录这个错误。
我该怎么解决这个问题呢?
编辑
大家,这是我的设置文件。它基本上就是最简单的那种。我该怎么把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.5
或 C:\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'])