我有一个python脚本,它使用我已运行数周的泡菜。我最近安装了dropbox,以便我可以在机器A上运行脚本,将数据pickle到dropbox,然后将数据从dropbox加载到机器B上。所以,我曾经写过脚本路径中的文件,现在我写入由dropbox同步的单独文件。
当我去加载数据时,我收到以下错误:
data = pickle.load(f)
ModuleNotFoundError: No module named 'pandas._libs'
但是,此前一行正常工作:
import pandas as pd
事实上,如果我运行倾销(而不是加载)数据的脚本,它也会成功运行。
我还使用sys.path验证了路径是否正确。
可能是什么问题?
答案 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。