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

share.streamlit部署Streamlit应用找不到pkl文件如何解决?

Streamlit Cloud部署pkl文件FileNotFoundError解决方案

核心原因是本地运行的工作目录和Streamlit Cloud平台的默认工作目录存在差异,硬编码的相对路径无法适配部署环境,按以下步骤修改即可:

  • 优先使用绝对路径拼接的方式定位文件,避免直接写层级相对路径,推荐用Python标准库pathlib处理路径,适配不同系统的路径规则。
  • 在app/app.py文件头部添加路径定义代码:
from pathlib import Path

# 定位当前脚本所在的app文件夹绝对路径
APP_ROOT = Path(__file__).resolve().parent
# 定位仓库根目录(app文件夹的上级目录)
REPO_ROOT = APP_ROOT.parent
# 拼接得到models文件夹的绝对路径
MODELS_PATH = REPO_ROOT / "models"
  • 加载pkl模型时使用拼接后的路径,示例代码如下:
import pickle
# 加载乳腺癌预测模型
with open(MODELS_PATH / "breast_cancer_model.pkl", "rb") as f:
    breast_cancer_model = pickle.load(f)
# 其余pkl文件加载逻辑按相同规则修改即可
  • 检查仓库根目录下的.gitignore配置,确认所有pkl后缀的文件没有被纳入忽略规则,保证pkl文件已正常提交到GitHub仓库。
  • 若修改后仍报错,可添加调试代码在部署日志中确认路径是否正确:
# 打印models目录下的所有文件,确认pkl文件存在
print("Models目录下文件列表:", [f.name for f in MODELS_PATH.iterdir() if f.is_file()])

内容的提问来源于stack exchange,提问作者le Minh Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:06:03