将芹菜和django-celery更新为3.1:
$ pip freeze | grep celery
celery==3.1.18
django-celery==3.1.16
启动服务器时遇到此错误:
Traceback (most recent call last):
File "app/manage.py", line 16, in <module>
execute_from_command_line(sys.argv)
[...]
File "/Users/xxx/.virtualenvs/yyy/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
File "/Users/xxx/.virtualenvs/yyy/lib/python2.7/site-packages/django/conf/__init__.py", line 95, in __init__
raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named five
使用:
答案 0 :(得分:38)
vine的最新版本是5.0.0,而新发布的版本是06.09.2020(昨天):),该版本没有任何five.py
文件。因此,将藤版本降级到。
vine==1.3.0
为我工作
答案 1 :(得分:2)
互联网上的一些建议是:
重新安装(由于芹菜和django-celery版本不匹配)
升级芹菜
对我有用的是升级kombu:
pip install kombu -U
注意:更新到芹菜3.1后,支持django out of the box。
答案 2 :(得分:2)
您需要根据新的芹菜设置创建芹菜应用程序。使用设置在项目文件夹中创建文件celery.py。
from __future__ import absolute_import
import os
import sys
from celery import Celery
sfile = 'mysettings_file' # override it
os.environ.setdefault('DJANGO_SETTINGS_MODULE', sfile)
from django.conf import settings
project_name = 'referral' # override it
app = Celery(project_name)
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda : settings.INSTALLED_APPS)
在app/tasks.py
中添加您的任务
from referral import celery_app # substitute your project folder
class MyTask(celery_app.Task):
pass
然后,使用此应用程序注册您的任务。事实上,如果您想将芹菜与django一起使用,则不需要djcelery
,除非您将其用作数据库后端。
答案 3 :(得分:0)
from kombu.five import PY3, values
ModuleNotFoundError: No module named 'kombu.five'
在此之后重新安装celery,
pip install celery
这样我就可以在机器上解决此问题:)