首页 > 解决方案 > pickle.load() ModuleNotFoundError: No Module Named 'dask.sharedict'

问题描述

我尝试了 dask 版本 2.10.1、2.9.2 和 2.6.0 并且都给出了相同的错误:

import pickle

with open('data.txt', "rb") as f: 
    myobj = pickle.load(f)

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-8-4ebbec735679> in <module>
      3 
      4 with open('data.txt', "rb") as f:
----> 5     myobj = pickle.load(f)

ModuleNotFoundError: No module named 'dask.sharedict'

更多信息:单独使用 pickle 给了我ModuleNotFoundError: No module named 'dask',所以我在 conda 环境中安装了 dask。以上是我手动安装 dask 后出现的错误。

标签: pythonpickledask

解决方案


您腌制的对象是使用旧版本制作的某种 Dask 对象。Pickle 希望解开该对象的人使用完全相同的库版本。所以现在你需要弄清楚用于存储这个对象的确切软件环境。

由于这个原因(以及许多其他原因),Pickle 不是一种好的长期存储格式。


推荐阅读