【发布时间】:2023-03-26 16:08:01
【问题描述】:
我有一个使用我已经运行了数周的 pickle 的 python 脚本。我最近安装了dropbox,这样我就可以在机器A上运行脚本,将数据腌制到dropbox,然后将数据从dropbox加载到机器B上。所以,我曾经写入脚本路径中的文件,现在我写入由 Dropbox 同步的单独文件。
当我去加载数据时,我收到以下错误:
data = pickle.load(f)
ModuleNotFoundError: No module named 'pandas._libs'
但是,前面的这行工作正常:
import pandas as pd
事实上,如果我运行转储(而不是加载)数据的脚本,它也会成功运行。
我还使用 sys.path 验证了路径是否正确。
可能是什么问题?
【问题讨论】:
-
它是从 pickle.load(f) 中调用的
-
@SamCraig:不,pickle 通过(模块,名称)引用加载对象。您不存储类型的来源,您只需存储下次可以加载它的位置。
-
@SamCraig:但在这种情况下,一个对象被腌制,表明它位于
pd._libs模块中。显然该模块在另一台机器上不可用。 -
这让我相信这可能是 Pandas 版本的问题..
标签: python pandas import pickle