You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django项目启动Celery提示Module 'src.project_auth'无celery属性求解

问题原因

  1. Celery启动命令的--app参数指定错误:你将Celery实例定义在src/celery.py模块中,但启动时指定了src.project_auth作为应用入口,该模块下没有Celery实例,因此触发报错。
  2. Celery配置读取异常:你在settings.py中将所有Celery配置放在了CELERY_CONFIG字典中,但你初始化Celery时指定了namespace='CELERY',Celery只会读取settings.py下前缀为CELERY_的顶级变量,无法识别封装在字典内的配置。
  3. 缺少必要配置项:你使用RabbitMQ作为消息队列,但未配置CELERY_BROKER_URL;同时你安装了django_celery_results却将CELERY_RESULT_BACKEND设为None,配置不匹配。

解决步骤

  1. 修正Celery启动命令
    在项目根目录(与src文件夹同级的目录)执行以下命令即可:
celery --app src worker --loglevel=info
  1. 修正settings.py中的Celery配置
    删除原有CELERY_CONFIG字典,替换为以下顶级配置项:
CELERY_TASK_SERIALIZER = "json"
CELERY_ACCEPT_CONTENT = ["json"]
CELERY_RESULT_SERIALIZER = "json"
# 配合django_celery_results存储任务结果
CELERY_RESULT_BACKEND = "django-db"
CELERY_TIMEZONE = "UTC"
CELERY_ENABLE_UTC = True
CELERY_ENABLE_REMOTE_CONTROL = False
# 配置RabbitMQ消息队列地址,服务名对应docker-compose中的cache服务
CELERY_BROKER_URL = "amqp://guest:guest@cache:5672//"
  1. 执行数据库迁移
    你引入了django_celery_results组件,需要执行迁移创建对应数据表:
python manage.py migrate
  1. (可选)补充docker-compose Celery服务配置
    可以直接在docker-compose.yml的services节点下添加Celery worker服务,无需每次手动进入容器启动:
celery_worker:
    build: .
    command: celery --app src worker --loglevel=info
    volumes:
      - .:/code
    depends_on:
      - db
      - cache
    container_name: ${COMPOSE_PROJECT_NAME}_celery_worker

完成以上操作后重启服务即可正常启动Celery。

内容的提问来源于stack exchange,提问作者Chuck.h5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:24:03