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

Python3.7导入Python3.8生成pkl文件报pickle协议5不支持错误求助

问题修复方案

报错根因:Python 3.8+默认使用pickle协议5序列化文件,而Python3.7原生pickle库不支持该协议。你虽然提前导入了pickle5,但pd.read_pickle默认调用pandas内置的pickle依赖,不会使用你手动导入的pickle5,因此报错没有解决。

本地Python3.7环境修复步骤

  • 第一步:先确认已经安装pickle5依赖,未安装可执行命令:
    pip install pickle5
  • 第二步:修改读取pkl文件的代码逻辑,改用pickle5手动读取文件,修改后的完整代码如下:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import pickle5 as pickle

# 改用pickle5手动读取pkl文件
with open("Energy_data.pkl", "rb") as f:
    output = pickle.load(f)

plt.figure()
# print(output)
output.plot()

可选长期解决方案

如果可以联系到生成该pkl文件的同事,可让对方导出pkl时指定兼容Python3.7的协议版本,后续所有环境都可以直接读取,示例导出代码:

# 同事侧导出时指定protocol=4即可兼容Python3.7及以上版本
df.to_pickle("Energy_data.pkl", protocol=4)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:57:05