【发布时间】:2013-12-27 09:48:09
【问题描述】:
我正在为 Celery/RabbitMQ/Django 创建一个测试场景。在浏览/阅读了与我类似的各种帖子后,我找到了最接近的这个,但仍然对我没有帮助。执行 celery worker 时出现“ImportError: no module named tasks”错误。
Celery:3.1.5(不是 dj-celery) Django:1.5.5
项目结构:
testcele/ (project name)
mycelery/ (myapp)
__init__
tasks
testcele/
__init__
celery_task
settings
testcele/testcele/celery_task:
from __future__ import absolute_import
import os
from celery import Celery, task, current_task
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'testcele.settings')
app = Celery('testcele', backend='amqp', broker='amqp://guest@localhost//',
include=['tasks'])
if __name__ == '__main__':
app.start()
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
testcele/testcele/init.py:
from __future__ import absolute_import
from .celery_task import app as celery_app
mycelery/tasks.py:
from __future__ import absolute_import
from celery import Celery, task, current_task, shared_task
@shared_task()
def create_models():
.
.
.
我正在运行:“celery worker -A testcele -l INFO”,位于“testcele/”子目录。我还尝试从 testcele/testcel 子目录,从 testcele/mycelery 运行,将 celery worker 命令上的“testcele”替换为“tasks”或“mycelery”。显然,这会产生其他错误。
我错过了什么?
谢谢,里卡多
【问题讨论】: