Python:pickle创建模块导入错误

时间:2017-07-13 16:28:59

标签: python pandas import pickle

我有一个python脚本,它使用我已运行数周的泡菜。我最近安装了dropbox,以便我可以在机器A上运行脚本,将数据pickle到dropbox,然后将数据从dropbox加载到机器B上。所以,我曾经写过脚本路径中的文件,现在我写入由dropbox同步的单独文件。

当我去加载数据时,我收到以下错误:

data = pickle.load(f)
ModuleNotFoundError: No module named 'pandas._libs'

但是,此前一行正常工作:

import pandas as pd

事实上,如果我运行倾销(而不是加载)数据的脚本,它也会成功运行。

我还使用sys.path验证了路径是否正确。

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

正如评论中所述,这是一个pandas版本问题。您的pickle文件是通过挑选包含较新版本或pandas的对象创建的,系统unpickling该文件包含较早版本的pandas

更确切地说,pandas._libs首次出现在:

  

commit 648ae4f03622d8eafe1ca3b833bd6a99f56bece4   作者:Jeff Reback    日期:星期二3月7日18:21:18 2017 -0500

     

BLD:合并剩余的扩展程序   移动扩展到pandas / _libs,它包含扩展代码   以及生成的构建(作为其可导入的)。

...首次出现在0.20版本中。按理说你的pickle文件是使用版本pandas> = 0.20创建的,而unpickle系统的版本是< 0.20。