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

Python+Selenium项目打包为exe后控制台print内容不输出如何解决

原因分析
  • 使用PyInstaller等工具打包时若添加了--windowed/-w参数,会默认关闭控制台窗口,print语句没有输出载体,自然无法显示内容
  • 即便保留了控制台,Python默认的输出缓冲机制会将print内容暂存到缓冲区,程序运行过程中不会主动刷新到控制台,看起来就像没有输出
解决方案

方案1:启用控制台窗口(最常用)

如果程序本身需要控制台展示运行日志,打包时移除--windowed/-w参数即可,以PyInstaller为例,打包命令为:
pyinstaller -F 你的脚本文件名.py
参数说明:-F表示将所有依赖打包为单个可执行文件,不加窗口禁用参数就会默认弹出控制台,所有print内容可正常输出。

方案2:手动刷新输出缓冲

如果因业务要求必须保留--windowed参数隐藏控制台,可通过两种方式调整输出逻辑:

  • 单句print添加刷新参数,将所有print(xxx)修改为print(xxx, flush=True),强制每执行一次print就把内容刷新到输出流
  • 全局重定向输出到日志文件,在代码开头添加如下逻辑,所有print内容会直接写入本地日志文件,方便随时查看:
import sys
# 所有print内容会写入同目录下的 运行日志.log 文件
log = open("运行日志.log", "w", encoding="utf-8")
sys.stdout = log
sys.stderr = log
现有代码优化提示

你提交的代码中FireFox启动参数配置顺序有误,创建的Options实例不会生效,需调整顺序如下:

options = Options()
options.headless = False  # 如需无界面运行可改为True
config_path = os.path.join(application_path[0]+'/', config_name)
print(config_path, flush=True)
# 初始化浏览器时传入options参数
browser = webdriver.Firefox(executable_path=config_path, options=options)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:06:02