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

Exercism提交Python练习代码遇OSError本地运行正常求解决

排查思路
  • 检查代码里是否有直接读取标准输入的逻辑,比如input()、sys.stdin.read()这类语句。Exercism的测试环境是用pytest自动执行测试用例,不会提供手动输入,本地运行正常是因为你手动输入了内容,但平台测试时既没有输入源,pytest的输出捕获机制还会阻止这类读取操作,进而触发报错。
  • 核对练习要求:Exercism的Python练习一般要求编写可被测试用例直接调用的函数,而非带控制台交互的完整脚本。你大概率是把代码写成了需要用户输入的交互式程序,而非符合测试规范的函数形式。
  • 重构代码结构:把依赖stdin输入的逻辑改成通过函数参数传递数据。比如原来用user_input = input("Enter something: ")的地方,改成定义def your_function(input_data):这样的函数,本地测试时可以加if __name__ == "__main__":块来处理控制台输入并调用函数,但提交时确保测试执行路径不会触发stdin读取。
  • 本地模拟平台测试环境:在本地用pytest运行练习附带的测试文件,不要加-s参数,看看是否能复现相同报错。如果本地复现,说明代码确实存在stdin读取的问题,方便你在本地调试修改,不用反复提交到平台。
  • 查看测试文件逻辑:打开Exercism提供的测试文件,看它是如何调用你的代码的。测试文件应该是直接导入你的函数并传入预设参数进行断言,如果你写的代码不是函数形式而是直接执行stdin读取,测试时必然会触发错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 20:34:56