python - 使用 pickle.load() 时没有名为 dill 的模块

标签 python pandas pickle dill

我在我的 python 2.7 中安装了 dill,但是当我尝试解开我的模型时,它显示“没有名为 dill 的模块”。 pickle 文件包含 pandas 系列。

编辑: 这是 ElasticBeanstalk 环境中回溯的快照

File "/opt/python/current/app/app/models/classification.py", line 663, in __init__
  self.lookupdict = pickle.load(open(<filepath>))
File "/usr/lib64/python2.7/pickle.py", line 1384, in load
  return Unpickler(file).load()
File "/usr/lib64/python2.7/pickle.py", line 864, in load
  dispatch[key](self)
File "/usr/lib64/python2.7/pickle.py", line 1096, in load_global
  klass = self.find_class(module, name)
File "/usr/lib64/python2.7/pickle.py", line 1130, in find_class
  __import__(module)
File "/opt/python/run/venv/local/lib64/python2.7/site-packages/gevent/builtins.py", line 93, in __import__
  result = _import(*args, **kwargs)
ImportError: No module named dill

最佳答案

如果您的 Elastic beanstalk 或错误环境上的版本高于您的本地版本,则将您的 dill 包降级为在您的 EC2 或本地机器上运行的包。 在您的本地机器上,检查当前的 dill 包:

pip freeze | grep -i 'dill'

例如,它输出:dill==0.2.7.1,低于 beantalk 上的值

然后降级使用

pip install dill==0.2.7.1

关于python - 使用 pickle.load() 时没有名为 dill 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51597073/

相关文章:

python - 如何从网站抓取 2 级网页

python - 运行时警告 : Cannot provide views on a non-contiguous input array without copying

python - 无法从脚本加载 matplotlib.pyplot

pandas - pandas 中的扩展 dtypes 似乎有一个查询错误

python - 如何合并相同值的列数据并对其具体数据求和

python - 值错误: non-string names in Numpy dtype unpickling only on AWS Lambda

Python pickle : fix\r characters before loading

python - 我的年份列表不适用于 BeautifulSoup。为什么?

python - 如何将带有换行符的列标题读入 Pandas?

Python:用一些不可 pickle 的项目 pickle 字典