unsupported pickle protocol: 5

问题背景

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

unsupported pickle protocol: 5_第1张图片

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


问题分析

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

pickle — Python object serialization — Python 3.10.4 documentation 

unsupported pickle protocol: 5_第2张图片对应的协议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_第3张图片


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

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

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

你可能感兴趣的:(python,jupyter)