unsupported pickle protocol: 5

问题背景

今天遇到了unsupported pickle protocol: 5,记录一下解决思路和解决过程

遇到了这个问题就说明我的pickle是用python3.8生成的,但是我的anaconda里默认的是python3.6,所以读取这个pickle失败了


问题分析

明显是pickle的原因,直接去官网看看(了解一下pickle与python的关系)

pickle — Python object serialization — Python 3.10.4 documentation 

对应的协议5是3.8中的,所以当时在pickle.dump的时候是在python3.8中使用协议5序列化的!


解决办法

a)卸载现有的anaconda版本,安装配备python3.8及以上版本的anaconda(我不会选这个,因为前天为了安装mpldatacursor历经波折最后把最新的anaconda卸载了,安装了默认python版本为3.6的anaconda5.2.0)

b)保存和读取pkl文件用同样的python版本


关于解决办法的详细操作

a)关于解决方案a:大家都会的,就是卸载+重装anaconda(记得找到对应的版本哦)

关于怎么查找对应的版本可以参考这篇博文:

《软件安装与使用教程》— 三大操作系统的Anaconda版本与Python版本对照表_木楞人的博客-CSDN博客_anaconda python版本《软件安装与使用教程》— 三大操作系统的Anaconda版本与Python版本对照表_木楞人的博客-CSDN博客_anaconda python版本《软件安装与使用教程》— 三大操作系统的Anaconda版本与Python版本对照表_木楞人的博客-CSDN博客_anaconda python版本

b)关于解决方案b:接下来就开始用python3.6生成并读取pickle

我们先了解一下pickle

Python之Pickle学习_奥卡姆的剃刀的博客-CSDN博客_pickle python

我的计划是:csv转txt——txt转list——用list生成pkl——读取pkl

最后读取成功!


关于解决本次问题我参考的博文

关于unsupported pickle protocol: 5的解决办法

ValueError: unsupported pickle protocol: 5_头脑风暴OO的博客-CSDN博客

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值