You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cx_Freeze打包含playsound的Python脚本生成exe运行时cmd窗口闪退问题

cx_Freeze打包exe运行闪退问题解决方案

问题表现

使用cx_Freeze打包Python音频播放脚本后,生成的exe文件运行时仅弹出1秒cmd窗口就自动关闭,无法正常播放sound.mp3音频。

原项目代码

Setup.py 打包配置

import sys
from cx_Freeze import setup, Executable

packages  = ["playsound", "os", "time", "multiprocessing"]    
Sound = Executable(
    script = "sound.py",
    targetName = "sound.py",
    )    
setup(name = "sound" ,
      version = "0.1" ,
      options = {"build_exe": {"packages": packages}},
      description = "" ,
      executables = [Sound]
      )

Sound.py 业务代码

import multiprocessing
from playsound import playsound
import os

file_location = os.path.dirname(__file__) + '\sound.mp3.mp3'
playsound(file_location)

问题原因

导致闪退的核心问题有以下几点:

  • 打包配置未指定base参数,Windows平台下cx_Freeze默认生成控制台程序,代码执行完成无阻塞逻辑就会直接退出
  • targetName配置错误,生成的目标文件后缀为.py而非.exe,不符合Windows可执行文件规范
  • 音频文件路径配置错误,代码中写了重复的.mp3后缀,且未将音频文件纳入打包资源列表,exe运行时找不到对应资源直接崩溃
  • 路径拼接直接使用反斜杠,存在路径识别异常风险

解决方案

方案1:修复cx_Freeze打包配置

修改Setup.py代码如下:

import sys
from cx_Freeze import setup, Executable

# 配置要包含的资源文件,把sound.mp3加入打包列表
include_files = ["sound.mp3"]
packages  = ["playsound", "os", "time", "multiprocessing"]    
# Windows下设置base为Win32GUI隐藏控制台,targetName改为exe后缀
base = "Win32GUI" if sys.platform == "win32" else None
Sound = Executable(
    script = "sound.py",
    target_name = "sound.exe",
    base=base
    )    
setup(name = "sound" ,
      version = "0.1" ,
      options = {"build_exe": {"packages": packages, "include_files": include_files}},
      description = "" ,
      executables = [Sound]
      )

同时修改Sound.py的路径拼接逻辑:

import multiprocessing
from playsound import playsound
import os

file_location = os.path.join(os.path.dirname(__file__), 'sound.mp3')
playsound(file_location)

方案2:更换打包工具(提问者验证有效)

直接使用PyInstaller工具打包,执行以下命令即可:
pyinstaller -w sound.py --add-data "sound.mp3;."
其中-w参数会隐藏控制台窗口,--add-data会把音频文件打包到生成的exe目录下,无需额外修改原业务代码即可正常运行。

内容的提问来源于stack exchange,提问作者Infacter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:48:00