芹菜 - 没有名为五的模块
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:“模块”对象没有属性“芹菜”