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

Ank*_*tia 3 python pickle pandas dill

我在python 2.7中安装了莳萝,但是当我尝试解开模型时,它说“没有名为莳萝的模块”。腌制的文件包含熊猫系列。

编辑:这是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
Run Code Online (Sandbox Code Playgroud)

Alo*_*yak 5

如果您的Elastic beanstalk或错误环境上的版本大于本地版本,则将莳萝包降级为可在EC2或本地计算机上运行的包。在本地计算机上,检查当前的莳萝包:

pip freeze | grep -i 'dill'
Run Code Online (Sandbox Code Playgroud)

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

然后使用降级

pip install dill==0.2.7.1
Run Code Online (Sandbox Code Playgroud)