ModuleNotFoundError: Нет модуля с именем 'rest_framework' при запуске celery -A backend worker -l info

Я пытаюсь выполнить свои задачи и в настоящее время использую для этого Celery наряду с Django и DjangoRestFramework

Вот как я все настроил, корневой каталог также называется backend

.
├── backend
│   ├── asgi.py
│   ├── celery.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── db.sqlite3
├── manage.py
└── save_to_db
    ├── admin.py
    ├── apps.py
    ├── dump.rdb
    ├── migrations
    │   ├── 0001_initial.py
    │   └── 0002_auto_20210728_0251.py
    ├── models.py
    ├── serializers.py
    ├── tasks.py
    ├── tests.py
    ├── urls.py
    └── views.py

Итак, у меня есть вся моя конфигурация для Celery в celery.py, которую я взял из этой статьи о том, как настроить Celery для Django https://docs.celeryproject.org/en/stable/django/first-steps-with-django.html. Вот как выглядит моя конфигурация

import os

from celery import Celery

# Set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')

app = Celery('backend')

# Using a string here means the worker doesn't have to serialize
# the configuration object to child processes.
# - namespace='CELERY' means all celery-related configuration keys
#   should have a `CELERY_` prefix.
app.config_from_object('django.conf:settings', namespace='CELERY')

# Load task modules from all registered Django apps.
app.autodiscover_tasks()


@app.task(bind=True)
def debug_task(self):
    print(f'Request: {self.request!r}')

Я решил выполнить эту команду, чтобы запустить Celery celery -A backend worker -l info

Но это дает мне эту ошибку

Я установил DjangoRestFramework через Poetry и он появился в моем pyproject.toml и я включил rest_framework в мой INSTALLED_APPS в настройках

Установленные приложения и некоторые другие конфиги для celery в моем settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'save_to_db'
]

# Celery Configuration Options
CELERY_TIMEZONE = "US/Eastern"
CELERY_TASK_TRACK_STARTED = True

# CELERY STUFF
BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'

Работает ли ваш проект в виртуальной среде? Если да, запустите celery в виртуальной среде.

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