Django Celery 应用程序 - 没有名为 celery 的模块错误

2024-03-20

我创建了一个 django-celery 应用程序,如教程中所示:

http://docs.celeryproject.org/en/master/django/first-steps-with-django.html http://docs.celeryproject.org/en/master/django/first-steps-with-django.html

当我在没有应用程序参数的情况下运行它时,一切正常,如下所示:

$ python manage.py celery worker -l info

但我根本无法使用应用程序参数启动它,如下所示:

$ python manage.py celery worker -A myapp -l info

其中 myapp 是我使用以下命令创建项目时为应用程序指定的名称:

$ python manage.py startapp myapp

我收到的错误是:

ImportError: No module named celery

有谁知道为什么会发生这种情况以及如何解决它?


2014 年 4 月编辑:

Celery 文档已更新为 3.1;以下解决方案现已过时,请参阅:

http://docs.celeryproject.org/en/master/django/first-steps-with-django.html http://docs.celeryproject.org/en/master/django/first-steps-with-django.html


默认情况下,celery 搜索名为的模块celery.py找到它的配置。您可以让 celery 使用与以下名称不同的名称celery.py通过指定它在应用程序参数上 http://docs.celeryproject.org/en/latest/getting-started/next-steps.html#about-the-app-argument- 在此示例中,我们将在以下位置查找 celery 配置settings.py:

python manage.py celery worker --app=myapp.settings

使用时django-celery您可以使用上面的调用来启动 celery,或者像我最初那样创建一个celery.py在我的应用程序包中myapp:

from settings import celery

我的姜戈settings.py包含正常的 celery 配置:

from celery import Celery

celery = Celery(broker="amqp://guest:[email protected] /cdn-cgi/l/email-protection:5672//")

celery.conf.update(
    CELERY_DEFAULT_QUEUE = "myapp",
    CELERY_DEFAULT_EXCHANGE = "myapp",
    CELERY_DEFAULT_EXCHANGE_TYPE = "direct",
    CELERY_DEFAULT_ROUTING_KEY = "myapp",
)

然后像这样运行 celery worker:

python manage.py celery worker --app=myapp

为了清楚起见,这是我的完整应用程序结构:

myproject/
    manage.py
    myapp/
        __init__.py
        settings.py
        celery.py
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django Celery 应用程序 - 没有名为 celery 的模块错误 的相关文章

随机推荐