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

Celery无法找到gunter_site.settings模块问题求助

问题分析与解决方案

核心问题

Celery Worker启动正常,但在Python控制台调用任务时触发ModuleNotFoundError: No module named 'gunter_site.settings',本质是Python路径未正确包含项目根目录,或Django环境未初始化导致Celery无法定位settings模块。

解决方案

1. 确保项目根目录在Python路径中

假设你的项目结构如下:

gunter_site/  # 项目根目录
├── gunter_site/  # Django项目包(含settings.py、celery.py)
│   ├── __init__.py
│   ├── celery.py
│   ├── settings.py
│   └── ...
└── venv/
  • 优先选择cd到外层gunter_site目录后再启动Python控制台
  • 若无法切换目录,可在控制台手动添加路径:
import sys
sys.path.append("/你的项目绝对路径/外层gunter_site")

2. 修正任务导入路径

你当前的导入语句多了一层冗余路径,正确的导入方式应为:

from gunter_site.celery import debug_task

3. 手动初始化Django环境

在调用任务前,需先让Celery识别Django的配置,在Python控制台执行:

import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gunter_site.settings')
import django
django.setup()

# 之后导入并调用任务
from gunter_site.celery import debug_task
debug_task.delay()

4. 检查Celery配置文件

确保celery.py中已正确绑定Django settings:

import os
from celery import Celery

# 必须配置这一行,指定settings模块位置
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gunter_site.settings')

app = Celery('gunter_site')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

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

内容的提问来源于stack exchange,提问作者Evgeniy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:15:27