When go to admin periodictask page, these is an error.
LOGS
Environment:
Request Method: GET
Request URL: http://localhost:8000/admin/django_celery_beat/periodictask/
Django Version: 3.1.1
Python Version: 3.8.5
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'user_sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mptt',
'import_export',
'graphene_django',
'django_celery_beat',
'storage',
'board',
'xiaoai',
'iot',
'corsheaders']
Installed Middleware:
['corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'user_sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback (most recent call last):
File "C:\Users\hmy01\Works\Working\smart-home\.venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\hmy01\Works\Working\smart-home\.venv\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\hmy01\Works\Working\smart-home\.venv\lib\site-packages\django\contrib\admin\options.py", line 614, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "C:\Users\hmy01\Works\Working\smart-home\.venv\lib\site-packages\django\utils\decorators.py", line 130, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\Users\hmy01\Works\Working\smart-home\.venv\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "C:\Users\hmy01\Works\Working\smart-home\.venv\lib\site-packages\django\contrib\admin\sites.py", line 233, in inner
return view(request, *args, **kwargs)
File "C:\Users\hmy01\Works\Working\smart-home\.venv\lib\site-packages\django_celery_beat\admin.py", line 156, in changelist_view
extra_context['wrong_scheduler'] = not is_database_scheduler(scheduler)
File "C:\Users\hmy01\Works\Working\smart-home\.venv\lib\site-packages\django_celery_beat\utils.py", line 42, in is_database_scheduler
from .schedulers import DatabaseScheduler
File "C:\Users\hmy01\Works\Working\smart-home\.venv\lib\site-packages\django_celery_beat\schedulers.py", line 11, in
Same problem here
celery beat v5.0.0 (singularity) is starting.
Traceback (most recent call last):
File "/home/teera/.pyenv/versions/3.8.4/bin/celery", line 8, in <module>
sys.exit(main())
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/celery/__main__.py", line 15, in main
sys.exit(_main())
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/celery/bin/celery.py", line 150, in main
return celery(auto_envvar_prefix="CELERY")
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/click/decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/celery/bin/beat.py", line 70, in beat
return beat().run()
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/celery/apps/beat.py", line 77, in run
self.start_scheduler()
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/celery/apps/beat.py", line 96, in start_scheduler
print(self.banner(service))
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/celery/apps/beat.py", line 118, in banner
c.reset(self.startup_info(service))),
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/celery/apps/beat.py", line 128, in startup_info
scheduler = service.get_scheduler(lazy=True)
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/celery/beat.py", line 653, in get_scheduler
return symbol_by_name(self.scheduler_cls, aliases=aliases)(
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/kombu/utils/imports.py", line 56, in symbol_by_name
module = imp(module_name, package=package, **kwargs)
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/teera/.pyenv/versions/3.8.4/lib/python3.8/site-packages/django_celery_beat/schedulers.py", line 11, in <module>
from celery.utils.encoding import safe_str, safe_repr
ModuleNotFoundError: No module named 'celery.utils.encoding'
https://github.com/celery/django-celery-beat/pull/365
https://github.com/celery/django-celery-beat/pull/363
Same issue when trying to set up: https://github.com/pydanny/cookiecutter-django
Getting the same error.
same error here.
fixed it by changing 'celery.utils.encoding' to 'kombu.utils.encoding'
if you need a quick local fix, you can monkey patch it in a high level __init__ module:
import sys
from kombu.utils import encoding
sys.modules['celery.utils.encoding'] = encoding
'celery.utils.encoding' to 'kombu.utils.encoding'
This one worked for me.
@tuky worked for me.
should be fixed on master now, please check and let us know
thx @auvipy. the from kombu.utils.encoding import safe_str, safe_repr import now made it into schedulers.py twice.
I'm getting the same error
from celery.utils.encoding import safe_str, safe_repr
ModuleNotFoundError: No module named 'celery.utils.encoding'
When I run
celery -A proj beat -l INFO --scheduler django
celery -A proj beat -l INFO -S django
celery -A proj beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler
celery -A proj beat -l INFO -S django_celery_beat.schedulers:DatabaseScheduler
But when I run
celery -A proj beat -l INFO
The result is
LocalTime -> 2020-10-15 22:16:10
Configuration ->
. broker -> amqp://guest:**@localhost:5672//
. loader -> celery.loaders.app.AppLoader
. scheduler -> celery.beat.PersistentScheduler
. db -> celerybeat-schedule
. logfile -> [stderr]@%INFO
. maxinterval -> 5.00 minutes (300s)
[2020-10-15 22:16:10,468: INFO/MainProcess] beat: Starting...
Even though I set the beat_scheduler setting with django_celery_beat.schedulers:DatabaseScheduler. The settings in _lowecase_ do not work by the way.
I have the same stack @he0119 has.
Commenting this out gives no error:
# CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'
@auvipy This fix works for me. Are there any plans to release a new version on pypi which fix this bug?
v2.1.0 is now on pypi
v2.1.0 works with Celery v5.0.0 in my setup the issue is resolved and can be closed.
Also updated and the combo works fine.
Most helpful comment
if you need a quick local fix, you can monkey patch it in a high level __init__ module: