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

PyInstaller打包Python脚本为exe时报input(): lost sys.stdin错误如何解决

解决方案

最低要求:双击exe正常打开命令行完成交互

你遇到的报错是因为打包时使用了-w参数,该参数是为GUI程序设计的窗口模式参数,会禁用控制台的标准输入输出流,因此调用input()时会出现找不到sys.stdin的错误,调整打包命令即可解决:

  • 先删除之前打包生成的build、dist文件夹和terminal2.spec文件,避免旧缓存干扰打包结果
  • 在文件所在目录的终端中执行新的打包命令:pyinstaller --onefile terminal2.py
  • 打包完成后打开新生成的dist文件夹,双击里面的terminal2.exe就会自动弹出命令行窗口,可按照代码逻辑正常完成输入输出操作。

进阶要求:设置为全局命令任意位置调用

只需要将exe所在的目录添加到系统环境变量的Path中即可,操作步骤如下:

  • 复制terminal2.exe所在文件夹的完整绝对路径(例如D:\python_tools\dist)
  • 右键点击「此电脑」选择「属性」→ 点击「高级系统设置」→ 点击「环境变量」
  • 在「系统变量」列表中找到名为Path的变量,点击「编辑」→ 点击「新建」,将刚才复制的文件夹路径粘贴进去,依次点击所有弹出窗口的「确定」保存配置
  • 重启所有已打开的cmd/终端窗口,之后在任意路径下输入terminal2即可直接运行该程序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:24:02