Python打包成exe后input()报错:input(): lost sys.stdin
解决auto-py-to-exe打包Python代码后input()报错问题
报错原因
出现RuntimeError: input(): lost sys.stdin是因为打包后的.exe程序无法访问标准输入流,通常是打包时选择了无控制台窗口模式,导致程序运行时没有终端环境来接收input()的输入。
解决方案
1. 重新配置打包选项(推荐)
打开auto-py-to-exe,找到Console Window设置项:
- 选择**"Console Based"**(或对应“带控制台窗口”的选项)
- 重新生成.exe文件,启动后会自动弹出终端窗口,
input()就能正常接收输入。
2. 替换input()为图形化交互(无需终端场景)
如果不需要显示终端窗口,可以用tkinter实现图形化确认框替代input():
import tkinter as tk from tkinter import messagebox # 隐藏主窗口 root = tk.Tk() root.withdraw() # 弹出确认对话框 confirm = messagebox.askyesno("启动确认", "Moechtest du wirklich das programm starten, wenn ja druecke die ENTER Taste!") if confirm: # 执行程序核心逻辑 pass
3. 排查其他可能问题
确保auto-py-to-exe的Additional Files中没有遗漏程序依赖,但此报错核心原因还是控制台配置问题,优先尝试前两种方法。
内容的提问来源于stack exchange,提问作者870.Wiktor
相关产品推荐
相关产品推荐

