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

REPL导入tfrecorder正常 脚本运行报apache_beam无io属性错误如何解决

问题根因

该现象由Python导入路径优先级冲突导致,核心触发逻辑如下:

  1. 运行test1.py时,Python会自动将脚本所在的/test目录加入sys.path的最高优先级位置,导入模块时会优先搜索该目录下的文件
  2. 你的/test目录下存在一个名为test.py的文件,和Python标准库自带的test模块重名:
    报错栈中可以看到,依赖库future在导入标准库模块时,错误加载了你本地的/test/test.py文件,这个文件又主动导入了tfrecorder相关依赖,打断了apache_beam的完整初始化流程,导致apache_beam还没加载完io子模块就被后续逻辑调用,触发属性不存在的报错。
    而你在REPL中执行导入时,工作目录是根目录/,该目录下没有和标准库重名的test.py文件,future库可以正常导入标准库的test模块,apache_beam初始化流程完整,所以导入正常。

解决方案

  • 删除/重命名/test目录下的test.py文件,不要用Python标准库已存在的模块名(比如test、os、sys、json这类)命名自己的本地脚本
  • 如果需要保留该文件,可以在test1.py的最开头加入如下代码,调整导入路径优先级,让标准库路径优先于当前工作目录:
import sys
sys.path = [p for p in sys.path if p != '/test'] + ["/test"]
  • 也可以切换到其他不存在重名文件的目录下运行test1.py,比如在根目录执行python /test/test1.py即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:24:02