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

将Python代码打包为EXE时弹出cmd窗口的问题求助

解决PyInstaller打包后弹出cmd窗口的问题

问题出在你使用的os.system()函数——它会调用Windows的cmd.exe来执行命令,所以即使PyInstaller加了--windowed参数隐藏主程序的控制台,这个子进程的cmd窗口还是会弹出。

解决方法是用subprocess模块替代os.system(),通过设置参数来隐藏子进程的窗口:

修改代码

将原来的os.system调用替换为subprocess.Popen,并添加creationflags=subprocess.CREATE_NO_WINDOW参数:

import subprocess
path = 'supported_languages.txt'
# 启动记事本且不弹出cmd窗口
subprocess.Popen(['notepad.exe', path], creationflags=subprocess.CREATE_NO_WINDOW)

如果需要等待记事本关闭后再继续执行代码,可以加上wait():

import subprocess
path = 'supported_languages.txt'
proc = subprocess.Popen(['notepad.exe', path], creationflags=subprocess.CREATE_NO_WINDOW)
proc.wait()

为什么这个方法有效

subprocess.CREATE_NO_WINDOW是Windows平台特有的参数,它会告诉系统创建进程时不显示控制台窗口,彻底避免了os.system()带来的cmd弹窗问题。

你的PyInstaller打包命令不需要修改,保持--windowed参数即可,它负责隐藏主Python程序的控制台。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:53:12