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

Django配置CELERY_BEAT_SCHEDULER遇ModuleNotFoundError求助

Django Celery Beat 模块找不到问题解决

1. 修正调度器配置的模块名

Python模块名不支持连字符,django-celery-beat是pip安装的包名,但实际导入的模块名是下划线形式的django_celery_beat。把settings.py里的调度器配置改成:

CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler"

这是最可能触发ModuleNotFoundError的原因。

2. 确认虚拟环境与依赖安装

  • 先激活项目对应的虚拟环境:
    • Linux/mac:source venv/bin/activate
    • Windows:venv\Scripts\activate
  • 重新安装依赖:pip install django-celery-beat
  • 执行pip list,确认输出里有django-celery-beat包。

3. 用虚拟环境内的Celery命令启动

如果全局和虚拟环境都装了Celery,容易调用到没装依赖的全局命令。直接用虚拟环境内的Celery绝对路径启动:

  • Linux/mac:venv/bin/celery -A config beat -l INFO
  • Windows:venv\Scripts\celery.exe -A config beat -l INFO

4. 检查Celery初始化配置

确保项目的celery.py(通常在根目录或config文件夹下)正确加载了Django环境:

import os
from celery import Celery

# 指定Django配置文件
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')

app = Celery('config')
# 从Django settings读取Celery配置(前缀为CELERY_)
app.config_from_object('django.conf:settings', namespace='CELERY')
# 自动发现所有app中的tasks文件
app.autodiscover_tasks()

5. 执行数据库迁移

配置django_celery_beat后,需要创建相关数据表:

python manage.py migrate django_celery_beat

完成以上步骤后,重新启动Celery Beat即可。

内容的提问来源于stack exchange,提问作者Сергей Киселёв

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:05:29