Celery ImportError: No module named proj

Celery ImportError: No module named proj

我正在尝试使用 Django 设置 Celery。我已遵循指南:

project/project/celery.py:

from __future__ import absolute_import

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', 'project.settings')

app = Celery('proj')

# 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)

然后在...

project/project/__init__.py:


from __future__ import absolute_import

# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app

project/apps/test/tasks.py

from __future__ import absolute_import

from celery import shared_task


@shared_task
def add(x, y):
    return x + y

然后运行:

celery -A proj worker -l info

给出错误:

  File "/Users/user/Documents/workspace/test-api/env/lib/python2.7/site-packages/kombu/utils/__init__.py", line 92, in symbol_by_name
    module = imp(module_name, package=package, **kwargs)
  File "/Users/user/Documents/workspace/test-api/env/lib/python2.7/site-packages/celery/utils/imports.py", line 101, in import_from_cwd
    return imp(module, package=package)
  File "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named proj

您的项目名为 project,而不是 proj。您应该始终使用该名称。

我只想说,如果你已经正确地命名了所有的东西,但你仍然遇到找不到模块的错误(我花了几个小时试图弄清楚这个)......那么你必须放置命令 "celery -A proj worker -l info"在应用程序分支上方

"The celery program can be used to start the worker (you need to run the worker in the directory above proj):" 根据文档