pickle报错 ValueError: unsupported pickle protocol: 3
1、报错含义
不支持用 Python2 读取 Python3 生成的 pkl 文件。
2、解决办法
如果知道会是在 Python2 环境中执行读取 pkl 文件,则在生成 pkl 文件时加入 protocol=2:
import pickle pickle.dump(model_name,open('example.pkl', 'wb'), protocol=2)
这样就是用 Python3 生成了能用 Python2 读取的 pkl 文件。
3、补充
Python2 生成的 pkl 导入方式:
import cPickle
with open('data.pkl', 'rb') as f:
samples, labels = cPickle.load(f)
Python3 生成的pkl 导入方式:
import pickle
with open('data.pkl', 'rb') as f:
samples, labels = pickle.load(f)