首页 > 解决方案 > Celery 在我的 Django 项目中找不到模块

问题描述

我有一个使用 celery 4.2.1 和 redis 2.10.6 的 Django 2.0 项目。django 项目有两个应用程序,memorabilia 和 face_recognition。我已经在我的开发机器上运行 django 成功地运行任务。我将所有内容上传到我的 git 服务器,然后从 git 在我的笔记本电脑上安装应用程序,更新所有要求等。两者都是 Ubuntu 机器。我没有使用 django-celery。

当我尝试跑步celery -A MemorabiliaJSON worker -l debug时,

我得到一个例外说ModuleNotFoundError: No module named 'face_recognition.tasks'

我不确定如何解决这个问题,因为我的开发机器上正在运行相同的代码库。

我的文件结构是:

├── celery.sh
├── face_recognition
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   ├── models.py
│   ├── __pycache__
│   ├── tasks.py
│   ├── tests.py
│   └── views.py
├── __init__.py
├── manage.py
├── memorabilia
│   ├── admin.py
│   ├── apps.py
│   ├── fields.py
│   ├── fixtures
│   ├── __init__.py
│   ├── logs
│   ├── migrations
│   ├── models.py
│   ├── __pycache__
│   ├── storage.py
│   ├── tasks.py
│   ├── templates
│   ├── tests
│   ├── urls.py
│   ├── validators.py
│   ├── views.py
│   ├── widgets.py
├── MemorabiliaJSON
│   ├── celery.py
│   ├── default_images
│   ├── documents
│   ├── __init__.py
│   ├── __pycache__
│   ├── settings
│   ├── static
│   ├── urls.py
│   ├── views.py
│   ├── wsgi.py
├── __pycache__
│   ├── celery.cpython-36.pyc
│   └── __init__.cpython-36.pyc
├── requirements.txt
└── tests

大事记JSON/celery.py

# http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from django.apps import apps
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MemorabiliaJSON.settings.tsunami')

app = Celery('MemorabiliaJSON')
app.config_from_object('django.conf:settings', namespace='CELERY')
#app.autodiscover_tasks(lambda: [n.name for n in apps.get_app_configs()])
app.autodiscover_tasks()

@app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))
    (memorabilia-JSON) mark@octopus:~/python-projects/memorabilia-JSON 

face_recognition/__init__.py

default_app_config = 'face_recognition.apps.FaceRecognitionConfig'

memorabilia/__init__.py

default_app_config = 'memorabilia.apps.MemorabiliaConfig'

INSTALLED_APPS 有这两个应用

'memorabilia.apps.MemorabiliaConfig',
'face_recognition.apps.FaceRecognitionConfig',

标签: djangocelery

解决方案


推荐阅读