今天遇到了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博客