【问题标题】: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

【问题讨论】:

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


    【解决方案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

    【讨论】:

    【解决方案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 现已停产。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-02-12
          • 2021-12-24
          • 2019-02-02
          • 2020-01-01
          • 2021-09-23
          • 1970-01-01
          • 2012-11-13
          • 2015-12-08
          相关资源
          最近更新 更多