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

在Flask中加载pickle文件失败,报tarfile.ReadError错误求助

Flask加载Pickle文件时遇到tarfile.ReadError的解决办法

你遇到的tarfile.ReadError: file could not be opened successfully错误,大概率和文件本身、路径或读取方式有关,以下是针对性的解决步骤:

  • 检查文件路径与完整性
    首先确认Stocks1.pkl和app.py在同一目录下,可通过代码验证:

    import os
    print(os.path.exists('Stocks1.pkl'))
    

    如果输出False,说明文件路径错误,需要修正路径(比如用绝对路径/full/path/to/Stocks1.pkl);如果输出True,尝试手动打开文件,若文件无法正常打开或内容异常,说明文件损坏,需重新获取或生成正确的pickle文件。

  • 确认文件是否为标准Pickle格式
    有些模型文件可能被打包成tar格式却被命名为.pkl,直接用pickle读取就会触发tarfile错误。可以尝试先解压:

    import tarfile
    with tarfile.open('Stocks1.pkl', 'r') as tar:
        tar.extractall()
    

    解压后找到真正的pickle模型文件,再用pickle.load()加载。另外要确认生成该文件时是用pickle.dump()导出的,而非其他打包工具。

  • 规范文件读取方式
    你的代码中直接使用open()未关闭文件句柄,建议改用上下文管理器确保资源正确释放,同时保证读取模式为rb(二进制读):

    import pickle
    with open('Stocks1.pkl', 'rb') as f:
        model1 = pickle.load(f)
    prediction = model1.predict(Stock_name)
    
  • 排查环境依赖
    确保当前Python环境和生成Stocks1.pkl时的环境依赖版本一致(比如scikit-learn、numpy等库),版本不兼容可能导致读取失败,可通过pip freeze对比两边的依赖列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:25:18