Python读取pickle协议4错误:STACK_GLOBAL需要str



在Python 3.7.5,ubuntu 18.04中,pickle读取出现错误,

pickle版本4

示例代码:

import pickle as pkl
file = open("sample.pkl", "rb")
data = pkl.load(file)

错误:

UnpicklingError Traceback(最近的调用最后(在
---->1数据=pickle.load(文件(取消拾取错误:STACK_GLOBAL需要str

从同一文件对象读取可以解决问题。

使用熊猫阅读也会产生同样的问题

我也有这个错误,原来我用pickle打开了一个numpy文件。;(

发现这是已知问题。中有问题页面github

我遇到了这个问题,只是在文件名的末尾添加了pckl

我的问题是,我试图在不同的python环境中进行pickle和unpickle-请注意确保您的pickle版本匹配!

也许这将是某人解决此错误的方法。我需要加载一个numpy数组:

torch.load(file)

当我加载数组时,出现了这个错误。所需要的只是把数组变成一个张量。例如:

result = torch.from_numpy(np.load(file))

最新更新