Celery 4.4.4 gives error for future module

Viewed 758

I have latest celery 4.4.4. When try to run it as worker, it gives error.

$ .venv/bin/pip freeze
amqp==2.6.0
appnope==0.1.0
backcall==0.1.0
billiard==3.6.3.0
celery==4.4.4
decorator==4.4.2
importlib-metadata==1.6.0
ipython==7.15.0
ipython-genutils==0.2.0
jedi==0.17.0
kombu==4.6.10
parso==0.7.0
pexpect==4.8.0
pickleshare==0.7.5
prompt-toolkit==3.0.5
ptyprocess==0.6.0
Pygments==2.6.1
pytz==2020.1
six==1.15.0
traitlets==4.3.3
vine==1.3.0
wcwidth==0.2.3
zipp==3.1.0

packages in my virutalenv.

$ .venv/bin/celery worker

iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0ExNUQ3Rjk5QTRDMTFFNkI3QTVBNUM4NjYyNkU4NTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0ExNUQ3RkE5QTRDMTFFNkI3QTVBNUM4NjYyNkU4NTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQTE1RDdGNzlBNEMxMUU2QjdBNUE1Qzg2NjI2RTg1NCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQTE1RDdGODlBNEMxMUU2QjdBNUE1Qzg2NjI2RTg1NCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhBNwdkAAAZqSURBVHja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
[2020-06-04 21:14:58,161: CRITICAL/MainProcess] Unrecoverable error: ModuleNotFoundError("No module named 'future'")
Traceback (most recent call last):
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/kombu/utils/objects.py", line 42, in __get__
    return obj.__dict__[self.__name__]
KeyError: 'backend'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/worker/worker.py", line 208, in start
    self.blueprint.start(self)
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/bootsteps.py", line 115, in start
    self.on_start()
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/apps/worker.py", line 139, in on_start
    self.emit_banner()
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/apps/worker.py", line 154, in emit_banner
    ' \n', self.startup_info(artlines=not use_image))),
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/apps/worker.py", line 217, in startup_info
    results=self.app.backend.as_uri(),
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/kombu/utils/objects.py", line 44, in __get__
    value = obj.__dict__[self.__name__] = self.__get(obj)
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/app/base.py", line 1232, in backend
    return self._get_backend()
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/app/base.py", line 949, in _get_backend
    self.loader)
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/app/backends.py", line 74, in by_url
    return by_name(backend, loader), url
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/app/backends.py", line 54, in by_name
    cls = symbol_by_name(backend, aliases)
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/kombu/utils/imports.py", line 57, in symbol_by_name
    module = imp(module_name, package=package, **kwargs)
  File "/Users/myuser/.pyenv/versions/3.7.4/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/backends/rpc.py", line 19, in <module>
    from . import base
  File "/Users/myuser/myprj/.venv/lib/python3.7/site-packages/celery/backends/base.py", line 10, in <module>
    from future.utils import raise_with_traceback
ModuleNotFoundError: No module named 'future'

This is new change added in new version of 4.4.4. How to fix this ?

1 Answers

Apparently it's a Celery 4.4.4 bug. You can wait until 4.4.5 is out (maybe it will already be out by the time you read this), or use 4.4.3, or manually pip install future.

Related