我对Python和Stack Overflow都很陌生,所以我在提问时不是很有经验,但是我一直在搜索这个网站超过两个小时,而且我仍然找不到解决我的问题。我已经下载cx_freeze,并创造了我的setup.py文件:cx_freeze .exe没有打开tkinter窗口
from cx_Freeze import setup, Executable
import sys
import os
import tkinter
base = None
if sys.platform == 'win32':
base = None
executables = [Executable("Bounce.py", base=base)]
packages = ["tkinter"]
options = {
'build_exe': {
'packages': ["os", "tkinter"],
},
}
os.environ['TCL_LIBRARY'] = r'C:\Program Files\Python36\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Program Files\Python36\tcl\tk8.6'
includes = []
include_files =
[r"C:\Users\peeps\AppData\Local\Programs\Python\Python36\DLLs\tcl86t.dll",
r"C:\Users\peeps\AppData\Local\Programs\Python\Python36\DLLs\tk86t.dll"]
setup(
name = "Bounce",
version = "1.0",
description = "Test",
options = options,
executables = executables
)
我的实际Python程序与Tkinter的模块运行,我测试我试图用这个与非Tkinter的Python文件相同的过程,这是转换成.exe完美无瑕。当我运行这个setup.py使用cx_freeze将Bounce.py转换为.exe时,.exe程序打开并立即关闭。 Bounce.py文件没有向控制台输出任何内容,所以我不确定打开的窗口是用于控制台还是tkinter窗口(尽管窗口大小是控制台的窗口大小,而不是tkinter窗口的大小)由400 px指定为500),因为它关闭得太快。有趣的是,当我改变了setup.py文件的系统平台规范:
if sys.platform == 'win32':
base = None
到:
if sys.platform == 'win32':
base = 'Win32GUI'
像一些导游说,其实我得到一个错误信息: https://i.stack.imgur.com/yA7ZG.png
我不知道那个错误信息意味着什么或者它为什么发生。如果您对如何解决此问题有任何想法,请告诉我。我觉得我已经搜索了每个论坛,并且我是第一个遇到这个问题的人:/
就我而言,我想用'PyInstaller'但'cx_Freeze ' – WSY
非常感谢你!问题是我有include_files并且包含变量,除非它们实际上未被使用。我复制了你的程序,它的工作完美无瑕(我不得不将include_files改为不同的DLL目录,但这是唯一的区别)。我不知道这是否值得一整个单独的帖子,但我想知道是否有一种方法来摆脱退出我的程序后弹出的错误消息:[链接] http://i.imgur .com/hGzT6eP.png这是当tkinter关闭时打印到控制台的错误信息,但它实际上并不是一个“错误” – MolotovPeep
我不知道你把include_files改成了什么(因为它对我很好用机器)。您可以尝试在调整代码之前使用python终端而不是Anaconda运行您的脚本(我真的对Anaconda几乎没有任何用处)。 – WSY