Sublime Text 3配置Python 3.9.2 运行代码输入回车即中断问题
异常现象说明
- 已完成Sublime Text 3适配Python 3.9.2的开发环境配置,所有执行的Python代码均出现统一异常:仅输出代码首行内容,在首个输入提示出现后,手动输入内容按下回车,程序直接终止运行,无后续执行流程。
- 用于复现问题的BMI计算测试代码(交互提示为克罗地亚语,不影响代码逻辑):
print('\n') height = int(input("Unesi svoju visinu: ")) width = int(input("Unesi svoju debljinu: ")) BMI = width / (he/100)**2 if BMI<=18.4: print("Ti se moraš udebljati!") elif BMI<=24.9: print("Dobar si!") elif BMI<=29.9: print("Malo se trebaš smršaviti!") elif BMI<=34.9: print("Trebaš se smršaviti!") elif BMI<=39.9: print("Trebaš se puno smršaviti!") else: print("Moraš odmah na treniranje!")
问题产生根源
- Sublime Text 内置默认的Python构建通道采用非交互式管道传输输入输出流,原生不支持
input()这类需要实时交互的输入操作。即便界面上能看到输入提示、可以手动输入内容,输入的字符也不会被传递给正在运行的Python进程,进程检测不到合法输入流就会直接异常退出,不会执行后续代码逻辑。 - 测试代码本身存在笔误:BMI计算公式中引用的变量
he未定义,前面定义的身高变量名称为height,修正为BMI = width / (height/100)**2后才能保证代码逻辑正确运行。
解决方法
- 替换Sublime Text的默认Python构建配置,使用支持交互式输入的运行环境:
- 通过Package Control安装SublimeREPL插件,该插件会为Python进程开通可正常交互的标准输入流
- 自定义Python构建系统:选择
Tools -> Build System -> New Build System,写入适配本机Python 3.9.2路径的SublimeREPL启动配置,保存为独立构建项 - 运行代码时选择该SublimeREPL对应的Python构建项启动,即可在内置交互窗口完成正常输入流程,不会出现输入后程序直接终止的问题
- 临时排查代码逻辑时,可直接打开系统本地Python终端,粘贴代码运行,绕开Sublime的非交互管道限制,快速定位代码本身的语法、逻辑问题。
内容的提问来源于stack exchange,提问作者Pexate
相关产品推荐
相关产品推荐

