【问题标题】:Celery ImportError: No module named tasksCelery ImportError:没有名为任务的模块
【发布时间】: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”。显然,这会产生其他错误。

我错过了什么?

谢谢,里卡多

【问题讨论】:

    标签: django celery


    【解决方案1】:

    尝试在您的mycelery 文件夹中添加一个__init__.py 文件以使其成为一个模块。如果这不起作用,请在定义 app 时指定任务。像这样:

    app = Celery('testcele', backend='amqp', broker='amqp://guest@localhost//',
                    include=['mycelery.tasks'])
    

    【讨论】:

    • init.py”文件确实在 mycelery 应用文件夹中。由于它是空的,因此我没有将其包含在问题中(我只是对其进行了编辑以显示它)。
    • include=['mycelery.tasks'] 而不是 include=['tasks'] ?
    猜你喜欢
    • 2016-02-25
    • 2018-04-06
    • 2015-07-07
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多