ModuleNotFoundError: No module named 'celery.decorators'


I’m working on getting a Tutor-based learning platform up and running and have encountered some serious issues when trying to set up grading. We already have a Tutor distribution set up (v15.2.0) and now wanted to check that courses imported from an external provider are correctly imported into the local instance. When I submit a response to any problem contained in the course, everything works correctly - the corresponding score appears, but when I go to the ‘Progress’ tab, every score is 0. Furthermore, examining the logs, I found many similar errors in the lms-worker-1 container (traceback attached below). Is this a configuration problem or a bug? Does the message in the logs have anything to do with the grading problem?

Thanks in advance for any suggestions.


lms-worker_1                 | /openedx/venv/lib/python3.8/site-packages/pkg_resources/ PkgResourcesDeprecationWarning: 2.5.0n is an invalid version and will not be supported in a future release
lms-worker_1                 |   warnings.warn(
lms-worker_1                 | Traceback (most recent call last):
lms-worker_1                 |   File "/openedx/venv/bin/celery", line 8, in <module>
lms-worker_1                 |     sys.exit(main())
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/", line 15, in main
lms-worker_1                 |     sys.exit(_main())
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/bin/", line 217, in main
lms-worker_1                 |     return celery(auto_envvar_prefix="CELERY")
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/click/", line 1130, in __call__
lms-worker_1                 |     return self.main(*args, **kwargs)
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/click/", line 1055, in main
lms-worker_1                 |     rv = self.invoke(ctx)
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/click/", line 1657, in invoke
lms-worker_1                 |     return _process_result(sub_ctx.command.invoke(sub_ctx))
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/click/", line 1404, in invoke
lms-worker_1                 |     return ctx.invoke(self.callback, **ctx.params)
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/click/", line 760, in invoke
lms-worker_1                 |     return __callback(*args, **kwargs)
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/click/", line 26, in new_func
lms-worker_1                 |     return f(get_current_context(), *args, **kwargs)
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/bin/", line 134, in caller
lms-worker_1                 |     return f(ctx, *args, **kwargs)
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/bin/", line 343, in worker
lms-worker_1                 |     worker = app.Worker(
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/worker/", line 94, in __init__
lms-worker_1                 |
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/loaders/", line 111, in init_worker
lms-worker_1                 |     self.import_default_modules()
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/loaders/", line 106, in import_default_modules
lms-worker_1                 |     return [self.import_task_module(m) for m in self.default_modules]
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/loaders/", line 106, in <listcomp>
lms-worker_1                 |     return [self.import_task_module(m) for m in self.default_modules]
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/loaders/", line 86, in import_task_module
lms-worker_1                 |     return self.import_from_cwd(module)
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/loaders/", line 92, in import_from_cwd
lms-worker_1                 |     return import_from_cwd(
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/utils/", line 105, in import_from_cwd
lms-worker_1                 |     return imp(module, package=package)
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/celery/loaders/", line 89, in import_module
lms-worker_1                 |     return importlib.import_module(module, package=package)
lms-worker_1                 |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/importlib/", line 127, in import_module
lms-worker_1                 |     return _bootstrap._gcd_import(name[level:], package, level)
lms-worker_1                 |   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
lms-worker_1                 |   File "<frozen importlib._bootstrap>", line 991, in _find_and_load
lms-worker_1                 |   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
lms-worker_1                 |   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
lms-worker_1                 |   File "<frozen importlib._bootstrap_external>", line 843, in exec_module
lms-worker_1                 |   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
lms-worker_1                 |   File "/openedx/venv/lib/python3.8/site-packages/poll/", line 3, in <module>
lms-worker_1                 |     from celery.decorators import task  # pylint: disable=import-error
lms-worker_1                 | ModuleNotFoundError: No module named 'celery.decorators'
tutor_local_lms-worker_1 exited with code 1