如何解决Python打包的exe报错时自动关闭终端无法查看错误的问题
解决方案
方案1:异常信息写入本地日志(推荐)
该方案完全不需要人工操作,即使终端自动关闭,也可以通过日志文件查看完整异常内容,完全满足你的限制要求。
修改后的代码示例:
import traceback import time try: # 此处替换为你的业务代码 some code here except Exception as e: print("error: ", e) # 追加写入异常日志到exe同级目录 with open("error_log.txt", "a", encoding="utf-8") as log_file: log_file.write(f"===== 异常发生时间:{time.strftime('%Y-%m-%d %H:%M:%S')} =====\n") # 写入完整异常栈信息,比单纯的异常描述更便于定位问题 log_file.write(traceback.format_exc()) log_file.write("\n"*3)
每次触发异常后,直接打开exe同级目录下的error_log.txt即可查看所有历史异常记录
方案2:异常触发后终端自动停留固定时长
如果你需要直接在终端窗口查看报错,又不想使用按任意键退出的方案,可以设置异常后终端自动停留固定时长,时间结束后自动关闭:
import traceback import time try: # 此处替换为你的业务代码 some code here except Exception as e: print("error: ", e) print("===== 完整异常信息 =====") print(traceback.format_exc()) # 终端停留30秒后自动退出,无需手动按键 time.sleep(30)
注意事项
- 使用PyInstaller等工具打包时,不要添加
-w/--windowed参数,该参数会禁用控制台窗口,导致所有打印内容无法显示,需使用-c/--console参数保留控制台。 - 如果你需要固定日志文件的存储位置,可以在
open()方法中传入绝对路径,避免找不到日志文件。
内容的提问来源于stack exchange,提问作者Sarthak Nagoshe
相关产品推荐
相关产品推荐

