当我在终端中运行celery -A uno worker -l info
时,我收到错误
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named uno
这是我的celery.py,它位于django settings.py文件所在的uno应用程序中。
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'uno.settings')
app = Celery('uno')
# This reads, e.g., CELERY_ACCEPT_CONTENT = ['json'] from settings.py:
app.config_from_object('django.conf:settings')
# For autodiscover_tasks to work, you must define your tasks in a file called 'tasks.py'.
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind=True)
def debug_task(self):
print("Request: {0!r}".format(self.request))
我正在使用Ubuntu但在Mac上遇到相同的错误。 我通过pip在virtualenv
中安装芹菜我不确定这里有什么问题或错过了什么。 如果我在不同的项目中使用相同的芹菜文件,请将其命名为例如app = Celery('faketest') 。我不确定这个应用程序出了什么问题。也许是因为我之后更改了应用名称。我真的很难过......
非常感谢。
答案 0 :(得分:0)
我只是想说,如果你已经正确命名了所有内容并且你仍然找不到模块错误(我花了好几个小时试图解决这个问题)...那么你必须放置命令“celery -A proj worker - l应用程序分支上方的信息
“celery程序可以用来启动worker(你需要在proj上面的目录中运行worker):”按照文档