我正在尝试学习 Celery,我正在使用 Django 2.0 和 celery 5.0.2,我的操作系统是 Ubuntu。
这是我的结构我的项目结构是:
celery/
manage.py
celery/
__init__.py
cerely_app.py
settings.py
urls.py
wsgi.py
apps/
main/
__init__.py
admin.py
apps.py
models.py
task.py
views.py
test.py
Run Code Online (Sandbox Code Playgroud)
我的 cerely_app 配置基于文档:
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'celery.settings')
app = Celery('celery')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
print(f'Request: {self.request!r}')
Run Code Online (Sandbox Code Playgroud)
还有我的init.py:
from .celery_app import app as celery_app
__all__ = ('celery_app',)
Run Code Online (Sandbox Code Playgroud)
但是当我使用命令 python3 manage.py runserver 时 django 给出导入错误:
$python3 manage.py runserver
Traceback (most recent call last):
File "manage.py", line 15, in …Run Code Online (Sandbox Code Playgroud)