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

Streamlit加载模型时触发tarfile.ReadError:文件无法成功打开

问题解决方法

1. 修正文件路径问题

Streamlit运行时的工作目录大概率和你本地脚本的工作目录不一样,导致相对路径找不到模型文件。你可以基于当前脚本的位置构建绝对路径:

import os
# 获取当前脚本所在的绝对目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接模型文件的完整路径
model_path = os.path.join(script_dir, 'saved_models', 'model.pkl')
model = pickle.load(open(model_path, 'rb'))

2. 改用Keras官方加载方式

从报错栈能看到,你的模型是Keras模型,直接用pickle加载容易出问题。建议用Keras自带的加载方法:

from keras.models import load_model
# 如果保存时用的是.h5格式,把后缀改成.h5即可
model = load_model('saved_models/model.pkl')

3. 检查文件状态

  • 确认saved_models/model.pkl文件确实存在,且没有损坏,必要时重新保存一次模型。
  • 检查文件权限:确保Streamlit运行进程能读取该文件,比如不要把文件设置为仅当前用户私有,也不要让其他程序占用该文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:05:00