我已经编写了一个基于Tkinter的应用程序,总结如下:
import ttk
import Tkinter as tk
class MyFrame(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
# program code here
def main():
root = tk.Tk()
app = MyFrame(root)
root.mainloop()
if __name__ == '__main__':
main()
通过解释器运行代码时,这很正常。然后我用py2exe编译一个exe文件,如下所示:
from distutils.core import setup
import py2exe
options = {'py2exe': {'bundle_files': 1}}
setup( windows=["crve.py"], zipfile = None, options = options)
这似乎工作正常,所有文件都应该显示,等等。但是当我运行exe文件时,鼠标指针显示计算机正在处理某些东西几秒钟但屏幕上没有显示任何内容。
我试过在这个和其他论坛上寻找解决方案无济于事。我怎么解决这个问题?我没有要查找的错误代码。非常感谢您的帮助。
编辑1: 有些澄清是有道理的。我正在使用python 2.7和相应版本的py2win。我使用命令从cmd运行py2exe:
python setup.py py2exe
编辑2: 由于Arden的建议阅读,这个问题已经解决了。解决方案是通过添加以下内容来排除两个dll:
options = {'py2exe': {"dll_excludes": ["tcl85.dll", "tk85.dll"]}}
然后从python_path / dlls手动复制文件。
答案 0 :(得分:0)
你究竟是如何运行py2exe来安装的?这个问题不是tkinter,我使用
在python3上运行你的例子python setup.py py2exe
它给了我一个有用的错误。它声明我需要将bundle_files选项更改为2以使用tkinter。