使用Pygame开发的Python游戏运行时弹出额外黑色exe窗口的解决方法
解决Pygame运行时弹出黑色控制台窗口的方案
嘿,这个问题我帮不少开发者解决过,其实处理起来挺轻松的,分两种常用场景给你说清楚:
一、直接运行Python脚本的情况
如果你是直接运行.py格式的游戏脚本,在Windows系统下,别用默认的python.exe启动,换成pythonw.exe就搞定了:
pythonw.exe是Python专门为GUI程序准备的解释器,运行时不会弹出黑色控制台窗口。你可以在命令行里输入:pythonw your_game.py,或者右键脚本文件,选择“打开方式”并指定pythonw.exe作为默认打开程序。- 要是你用IDE(比如VS Code)开发,可以在运行配置里把解释器改成
pythonw.exe。比如在VS Code的launch.json配置文件中,将pythonPath字段指向pythonw.exe的路径。
二、打包成.exe可执行文件的情况
如果需要把游戏打包成独立的.exe文件,不同打包工具对应不同的设置:
- 用PyInstaller打包:只需要在打包命令里加上
--noconsole(或简写-w)参数就行,命令如下:
这样生成的exe文件运行时就不会弹出黑色控制台窗口了。pyinstaller --noconsole your_game.py - 用cx_Freeze打包:需要在
setup.py配置文件中给可执行文件指定base="Win32GUI",示例代码如下:import cx_Freeze executables = [cx_Freeze.Executable("your_game.py", base="Win32GUI")] cx_Freeze.setup( name="你的游戏名称", options={"build_exe": {"packages": ["pygame"], "include_files": ["assets/"]}}, executables=executables )
小提醒
如果你的游戏代码里有print()这类控制台输出语句,用上面的方法后这些输出就看不到了。要是需要调试查看输出,可以暂时换回python.exe运行脚本,或者去掉打包时的--noconsole参数,调试完成后再改回去即可。
内容的提问来源于stack exchange,提问作者SSEZehra




