python-使用pickle.load()时没有名为dill的模块。[英] python - No module named dill while using pickle.load()

本文是小编为大家收集整理的关于python-使用pickle.load()时没有名为dill的模块。的处理方法,想解了python-使用pickle.load()时没有名为dill的模块。的问题怎么解决?python-使用pickle.load()时没有名为dill的模块。问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我的 python 2.7 中安装了 dill,但是当我尝试解开我的模型时,它显示"没有名为 dill 的模块".腌制文件包含熊猫系列.

编辑:这是 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 或本地机器上运行的包.在您的本地机器上,检查当前的莳萝包:

pip freeze | grep -i 'dill'

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

然后使用降级

pip install dill==0.2.7.1

本文地址:https://www.itbaoku.cn/post/1728154.html