如何将Python代码转为可执行文件并隐藏CMD窗口(Python3.6)
解决cx_Freeze打包exe弹出CMD窗口的问题
要隐藏exe运行时的CMD控制台窗口,关键是在cx_Freeze的Executable配置里设置base参数,具体操作如下:
步骤1:修改setup.py中的Executable配置
在你的setup.py里,找到定义Executable的部分,添加base参数。因为这个设置只适用于Windows平台,最好加上系统判断,避免在其他平台打包时出错。
结合你提供的现有代码,修改后的setup.py示例如下:
import cx_Freeze import sys import os import matplotlib # 保留你原有的TCL/TK环境变量配置(替换成你Python36的实际路径) os.environ['TCL_LIBRARY'] = r'C:\Python36\tcl\tcl8.6' os.environ['TK_LIBRARY'] = r'C:\Python36\tcl\tk8.6' # 判断系统平台,设置对应的运行基类 base = None if sys.platform == "win32": base = "Win32GUI" # 启用GUI模式,禁止弹出控制台窗口 # 定义可执行文件的配置,替换成你的实际主脚本文件名 executables = [cx_Freeze.Executable("你的主脚本.py", base=base)] cx_Freeze.setup( name="你的程序名称", options={"build_exe": {"packages": ["matplotlib"], "include_files": []}}, version="1.0", description="你的程序描述", executables=executables )
关键说明
base="Win32GUI":这个参数会告诉Windows系统,你的程序是GUI应用而非控制台应用,因此不会弹出CMD窗口。注意:如果你的程序本身是命令行程序(需要用户输入指令或查看控制台输出),不要使用这个设置,否则程序运行后会无界面显示,看起来像未启动。- 系统判断:加上
if sys.platform == "win32"可以确保在Linux、macOS等非Windows平台打包时不会报错,因为这些平台不需要该参数。
验证方法
修改完setup.py后,重新执行打包命令:
python setup.py build
生成新的exe文件后运行,就不会再弹出CMD窗口了。
内容的提问来源于stack exchange,提问作者Py Dev




