Closed he0119 closed 3 years ago
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.
Summary:
When go to admin periodictask page, these is an error.
Exact steps to reproduce the issue:
Detailed information
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
from celery.utils.encoding import safe_str, safe_repr
Exception Type: ModuleNotFoundError at /admin/django_celery_beat/periodictask/
Exception Value: No module named 'celery.utils.encoding'