使用 CLI 转换 Tkinter 应用程序
Posted
技术标签:
【中文标题】使用 CLI 转换 Tkinter 应用程序【英文标题】:Converting Tkinter app withoul CLI 【发布时间】:2017-10-17 16:14:21 【问题描述】:所以我创建了一个 tkinter 程序并将其保存为 .pyw 文件,这样当我运行它时它不会显示 CLI 背景窗口,但是当我使用 py2exe 和 cx-Freeze 编译它并运行它显示的可执行文件时CLI 提示符。如何将其编译成可执行文件,运行时不会显示黑窗?
【问题讨论】:
【参考方案1】:在 Windows 中,您可以使用以下命令隐藏 CLI:
base = Win32GUI
例如在这个脚本中:
import sys
from cx_Freeze import setup, Executable
build_exe_options = "packages": ["os"], "excludes": []
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup( name = "guifoo",
version = "0.1",
description = "My GUI application!",
options = "build_exe": build_exe_options,
executables = [Executable("guifoo.py", base=base)])
编辑:
您提到未包含媒体文件。这是很正常的,您必须手动指定这些。虽然有很多方法可以做到这一点,但最简单的方法是使用 include_files
参数。这相当简单,可以这样完成:
import sys
from cx_Freeze import setup, Executable
build_exe_options = "packages": ["os"], "excludes": [], "include_files":["Path/To/Media/Files.jpg"]
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup( name = "guifoo",
version = "0.1",
description = "My GUI application!",
options = "build_exe": build_exe_options,
executables = [Executable("guifoo.py", base=base)])
使用此方法,您可以像这样包含整个文件夹:
"include_files":["path/to/folder"]
或像这样的单个文件(如上所示):
"include_files":["path/to/file.png"]
【讨论】:
谢谢西蒙。它确实有效,但出了点问题。构建成功,但没有复制所有媒体文件,所以我必须手动移动它。顺便问一下,如果我想使用 py2exe 而不是 cx_Freeze,你能帮帮我吗? @LeeYou 不,对不起,我不知道 py2exe(它也只适用于 python 2)还有什么是要包含的媒体文件的名称和文件路径?一旦你告诉我,我会编辑以包含这些内容。 感谢西蒙的帮助。以上是关于使用 CLI 转换 Tkinter 应用程序的主要内容,如果未能解决你的问题,请参考以下文章