Django,ImportError:无法导入名称Celery

时间:2018-01-30 08:51:33

标签: python django celery

为什么会发生这种情况? 我的celery.py:

import os
from celery import Celery
from django.conf import settings

# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')

app = Celery('myshop')

app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

我的 init .py

# import celery
from .celery import app as celery_app

我甚至尝试将celery.py重命名为其他内容,但错误仍然存​​在。可能是因为我的python版本?

2 个答案:

答案 0 :(得分:1)

我会发布回答,以便从评论中删除。

首先在你的__ init__.py文件中添加这一行

from __future__ import absolute_import, unicode_literals

其次,你需要添加到你的设置,关于brooker的信息。 这是一个示例配置文件,可帮助您入门。它应该包含运行基本Celery设置所需的一切。

经纪人设置。

broker_url = 'amqp://guest:guest@localhost:5672//'

接下来是你的芹菜工人。因此,如果芹菜应用程序名为myshop,则必须通过键入以下简单命令来运行芹菜工作者(使用您的环境):

celery -A myshop worker -l info

然后尝试运行你的任务,一切都应该没问题。

答案 1 :(得分:0)

因为版本

你如何安装芹菜

pip install celery == 3.0.19
如果这个 然后通过
运行python python manage.py runserver

pip3安装celery == 3.0.19 如果这个 然后通过
运行python python3 manage.py runserver