我使用此处描述的说明。Python 2.7和Celery 3.1.17。
在celery.py中,我有(在开头):
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
当我运行时:
celery -A proj worker -l info
我有一个错误:
from django.conf import settings
ImportError: No module named 'django'
但我有Django和我的项目工作。
如何解决?
谢谢!
确保使用virtualenv
运行celery
。检查方法是在激活virtualenv
的情况下,运行命令:
which celery
如果你看到类似的东西:
/usr/bin/celery
然后全局安装了celery
,需要卸载它,并确保它只在virtualenv
中。
全局卸载celery
后,在virtualenv
中再次运行which celery
并进行检查。
对我来说,问题是INSTALLED_APPS
中有kombu.transport.django
。我最初使用Django作为传输代理,但当我升级到最新的Celery版本时,它不支持Django用作传输代理,我在INSTALLED_APPS
中仍然有kombu.transport.django
。当我删除该引用时,我在启动芹菜时不再出现此错误。