芹菜 - 没有名为五的模块

时间:2015-09-24 08:57:10

标签: python django python-2.7 celery django-celery

将芹菜和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

使用:

  • Django 1.4.21
  • Python 2.7

4 个答案:

答案 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

  • 这样我就可以在机器上解决此问题:)