Google Colab读取Pickle文件遇ValueError: unsupported pickle protocol: 5报错的解决求助
解决Colab中读取Pickle文件报
ValueError: unsupported pickle protocol: 5的问题 我来帮你一步步排查并解决这个问题!首先得搞清楚报错的根源:pickle协议版本5是Python 3.8及以上版本才支持的,你虽然升级了Python到3.9.12,但可能Colab的运行内核没同步切换到新的Python版本,或者环境配置有问题,导致实际运行的还是不支持协议5的旧版本。
第一步:先确认当前环境的Python版本与Pickle支持情况
先运行这段代码,看看你的Colab环境实际用的是哪个Python版本,以及pickle支持的最高协议版本:
import sys import pickle print("当前Python版本:", sys.version) print("Pickle支持的最高协议版本:", pickle.HIGHEST_PROTOCOL)
如果输出里Pickle支持的最高协议版本小于5,或者Python版本不是你升级的3.9.12,那说明你的升级操作没生效,接下来按步骤修复环境。
第二步:正确在Colab中配置支持协议5的Python环境
Colab默认的Python版本可能较低,手动升级后需要切换内核才能生效,按以下代码依次执行:
- 安装Python 3.9及依赖:
!apt-get update -y !apt-get install python3.9 python3.9-dev python3.9-distutils -y
- 为Python3.9安装对应版本的pip:
!curl https://bootstrap.pypa.io/get-pip.py | python3.9
- 将Python3.9设置为默认版本:
!update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 !update-alternatives --config python3
执行第二条命令后,会弹出选项让你选择默认Python版本,输入对应Python3.9的数字(通常是1)回车确认。
- 关键步骤:重启Colab内核
点击Colab顶部菜单栏的「Runtime」→「Restart runtime」,等待内核重启完成。
第三步:再次验证环境配置
重启内核后,再次运行第一步的代码,确认输出的Python版本是3.9.12,且Pickle支持的最高协议版本为5。
第四步:尝试读取Pickle文件
如果环境验证没问题,就可以用标准pickle模块读取文件了:
import pickle # 替换成你的pickle文件路径 file_path = "/content/your_file.pkl" with open(file_path, "rb") as f: data = pickle.load(f) # 验证读取结果 print("文件读取成功,数据类型:", type(data))
额外兼容方案:如果还是报错,尝试使用pickle5库
极少数情况下,可能存在环境的pickle模块异常,这时可以安装专门的pickle5库来兼容:
!pip install pickle5
然后用pickle5读取文件:
import pickle5 as pickle file_path = "/content/your_file.pkl" with open(file_path, "rb") as f: data = pickle.load(f)
内容的提问来源于stack exchange,提问作者单贺炜
相关产品推荐
相关产品推荐

