#python #python-3.x #celery
#python #python-3.x #сельдерей
Вопрос:
Когда я пытаюсь запустить celery 4.2 с Mac Mojave (10.14) и python 3.8. Я получаю следующую ошибку. Пожалуйста, помогите мне понять, что я делаю неправильно или в чем ошибка.
Ниже приведен мой код для приложения celery с Redis:
import celery
app = celery.Celery('tasks', broker='redis://')
app.autodiscover_tasks()
@app.task
def task1(ids):
time.sleep(1)
if not ids:
return "ids can not be empty"
print('Building dgraph through API', ids)
funcsysc = funcsysc()
Команда для запуска celery:
celery -A tasks -l info worker
Ошибка:
Traceback (most recent call last):
File "/Users/tss/Desktop/tss/tssvenv/bin/celery", line 8, in <module>
sys.exit(main())
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/__main__.py", line 16, in main
_main()
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/bin/celery.py", line 322, in main
cmd.execute_from_commandline(argv)
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/bin/celery.py", line 496, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/bin/base.py", line 275, in execute_from_commandline
return self.handle_argv(self.prog_name, argv[1:])
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/bin/celery.py", line 488, in handle_argv
return self.execute(command, argv)
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/bin/celery.py", line 416, in execute
return cls(
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/bin/worker.py", line 223, in run_from_argv
return self(*args, **options)
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/bin/base.py", line 238, in __call__
ret = self.run(*args, **kwargs)
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/bin/worker.py", line 252, in run
worker = self.app.Worker(
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/worker/worker.py", line 96, in __init__
self.app.loader.init_worker()
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/loaders/base.py", line 114, in init_worker
self.import_default_modules()
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/loaders/base.py", line 108, in import_default_modules
raise response
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/utils/dispatch/signal.py", line 288, in send
response = receiver(signal=self, sender=sender, **named)
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/vine/promises.py", line 143, in __call__
return self.throw()
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/vine/promises.py", line 140, in __call__
retval = fun(*final_args, **final_kwargs)
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/app/base.py", line 673, in _autodiscover_tasks
return self._autodiscover_tasks_from_fixups(related_name)
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/app/base.py", line 682, in _autodiscover_tasks_from_fixups
return self._autodiscover_tasks_from_names([
File "/Users/tss/Desktop/tss/tssvenv/lib/python3.8/site-packages/celery/app/base.py", line 684, in <listcomp>
for pkg in fixup.autodiscover_tasks()
AttributeError: 'NoneType' object has no attribute 'autodiscover_tasks'
Комментарии:
1. можете ли вы поделиться кодом создания приложения celery?
2. Возможно, я ошибаюсь, но я бы не рекомендовал использовать name
tasks
для проекта. Переименуйте, если бы вы могли? В Celery есть некоторый жесткий код для автоматического обнаружения задач в файлах / папках с именемtasks
по умолчанию, и что-то может быть не так с этим. Просто предположение.