Модуль 'project_name' не имеет атрибута 'celery'

Я пытаюсь установить фоновую задачу, используя celery и rabbitmq на django, но получаю ошибку, говорящую, что в моем проекте нет атрибута celery. Я использую PyCharm и установил celery через него.

Я новичок в celery, но я прочитал много статей, похожих на эту проблему (AttributeError: module 'module' has no attribute 'celery' эта кажется наиболее близкой, но не уверен, что это совсем то же самое)

Структура проекта:

project_name
├──project_name
|  ├── settings.py
├──app_name1
|  └──celery.py
├──app_name2
|  └──tasks.py

Я выполняю следующую команду:

celery -A project_name worker -l info --pool=solo

Но я получаю следующую ошибку:

Error: Invalid value for "-A" / "--app":
Unable to load celery application.
Module 'project_name' has no attribute 'celery'

файлcelery.py:

from __future__ import absolute_import, unicode_literals

import os

from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')

app = Celery('project_name')

app.config_from_object('django.config:settings', namespace='CELERY')

app.autodiscover_tasks()

файл tasks.py:

from __future__ import absolute_import, unicode_literals

from celery import shared_task

@shared_task
def add(x, y):
    return x + y

Просто для записи: Поместите celery.py файл в основной файл проекта, а не внутрь приложения.

Вернуться на верх