Django-celery-results: ошибка ModuleNotFoundError: нет модуля с именем 'django_celery_results'

Я пытаюсь запустить "celery -A myproj worker -l info", и он выдает ошибку ModuleNotFoundError: нет модуля с именем "django_celery_results". Все зависимости установлены (django, celery, django-celery-results, redis). Я пытался запустить его с правами администратора, но это тоже не помогло. Я попытался изменить версию python с 3.13 на 3.11, но также безрезультатно.

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

'django_celery_results',]

Эта ошибка обычно возникает, когда Celery не может найти среду Django. Вот шаги для ее устранения:

Шаг 1: Сначала активируйте свою виртуальную среду

source your_venv/bin/activate    # On Linux/Mac
your_venv\Scripts\activate       # On Windows

Шаг 2: Проверьте свой celery.py файл

Убедитесь, что у вас есть файл celery.py в каталоге вашего проекта (на том же уровне, что и settings.py):

import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproj.settings')
app = Celery('myproj')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

Шаг 3: Обновление settings.py

Добавьте эти конфигурации в свои настройки Django:

# Add to INSTALLED_APPS
INSTALLED_APPS = [
    # ... other apps
    'django_celery_results',
]

# Add Celery config
CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'django-db'

Шаг 4: Запустите миграцию

python manage.py migrate django_celery_results

Шаг 5: Запустите Celery из каталога проекта

cd /path/to/your/project
celery -A myproj worker -l info

Вы также можете попробовать:

celery -A myproj.celery worker -l info

Альтернатива: Используйте Redis для получения результатов (необязательно)

Если у вас все еще возникают проблемы, вы можете полностью пропустить django-celery-results:

# In settings.py
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'

# Remove from INSTALLED_APPS
# 'django_celery_results',

Отладочный тест

Чтобы убедиться, что пакет доступен, выполните следующие действия:

python -c "import django_celery_results; print('Package found')"

Основная проблема обычно заключается в запуске Celery вне виртуальной среды или в отсутствии настроек Django в celery.py. Убедитесь, что вы запускаете все команды из активированной виртуальной среды и из корневого каталога вашего проекта.

Выполняли ли вы команды makemigraions и migrate в своем проекте после установки пакетов celery ?

попробуйте получить список ваших pip-пакетов через IDE или просто: python pip list или python -m pip show django-celery-results, чтобы убедиться, что пакет установлен

Также убедитесь, что вы используете свой venv, а не глобальные пакеты python, выполнив следующие действия: which celery и which django_celery_results

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