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

Python解释器运行脚本报错前总是先打印旧脚本输出内容该如何解决?

根因分析

你遇到的是Python新手常见的模块命名冲突问题,核心原因有两个:

  1. 你当前运行的脚本命名为sys.py,和Python标准库自带的sys模块重名
  2. 你当前工作目录下还存在一个你早期写的测试脚本,命名为numbers.py,同样和Python标准库的numbers模块重名,你看到的无关输出就是这个脚本运行时打印的内容。
异常触发逻辑

当你的sys.py运行出错触发异常后,系统默认的Python错误收集工具apport会尝试导入一系列标准库模块完成错误上报流程,其中decimal模块依赖标准库的numbers模块。
Python导入模块时会优先查找当前工作目录下的同名文件,因此会先运行你写的numbers.py,导致无关内容被打印,同时因为你写的numbers.py不包含标准库要求的Number属性,还额外抛出了后续的AttributeError。

修复步骤
  • 将你当前的sys.py改名,不要使用任何Python标准库的名称作为脚本名,可改为sys_test.py等自定义名称
  • 找到当前工作目录下的numbers.py,将其改为非重名名称,例如numbers_demo.py,同时删除同目录下对应的__pycache__缓存文件夹
  • 检查当前工作目录下是否存在其他和Python标准库重名的脚本(如random.py、math.py、json.py等),统一修改为自定义名称
  • 重新运行脚本,异常输出就会消失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:36:02