芹菜 - 没有名为五的模块

Posted

技术标签:

【中文标题】芹菜 - 没有名为五的模块【英文标题】:Celery - No module named five 【发布时间】:2015-12-21 19:33:49 【问题描述】:

将 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

【问题讨论】:

【参考方案1】:

vine 的最新版本是 5.0.0,新鲜推送是在 06.09.2020(昨天):),并且这个版本没有任何 five.py 文件。所以将 vine 版本降级为。

vine==1.3.0

为我工作

【讨论】:

谢谢。我的 CI 管道失败了,我想知道为什么!【参考方案2】:

在网上找到的一些建议是:

重新安装两者(因为 celery 和 django-celery 版本不匹配)

升级芹菜

对我有用的是升级kombu:

pip install kombu -U

注意:更新到 celery 3.1 后,支持 django out of the box。

【讨论】:

赞成;现在升级 Kombu 是正确的方法。 Kombu 不久前删除了对五个的引用。见github.com/celery/kombu/commit/…【参考方案3】:

您需要根据新的 celery 设置创建一个 celery 应用程序。在您的项目文件夹中使用设置创建一个文件 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

然后,使用此应用程序注册您的任务。事实上,如果你想将 celery 与 django 一起使用,则不需要 djcelery,除非你将其用作数据库后端。

【讨论】:

【参考方案4】: 我遇到了这种问题...
from kombu.five import PY3, values
ModuleNotFoundError: No module named 'kombu.five'

之后重新安装芹菜

pip install celery

这样我在我的机器上解决了这个问题:)

【讨论】:

【参考方案5】:

从 5.0.0 版起,celery 不再使用五个或六个。它只是python 3。如果您使用最新的 pypi 版本,您将不会面对它。 celery 3.1.x 和 4.4.x 现已停产。

【讨论】:

以上是关于芹菜 - 没有名为五的模块的主要内容,如果未能解决你的问题,请参考以下文章

模块“模块”没有属性“芹菜”

开始芹菜:AttributeError:“模块”对象没有属性“芹菜”

如何解决这个 celery 错误:无法加载 celery 应用程序。模块“预测”没有属性“芹菜”

芹菜从 Django 模块内部记录到文件

为啥找不到我的芹菜配置文件?

没有名为“email.FeedParser”的模块