【问题标题】:ImportError: cannot import name 'Command' from 'celery.bin.base'ImportError:无法从“celery.bin.base”导入名称“命令”
【发布时间】:2020-10-03 02:01:51
【问题描述】:

当我运行命令时

flower -A main --port=5555

花不了,报错是:

> ImportError: cannot import name 'Command' from 'celery.bin.base'

有什么想法吗? Main 是一个 Django 项目

【问题讨论】:

  • 尝试安装 python3-celery。 sudo apt install python3-celery 还有pip3 install celery
  • 是的,它不起作用
  • 是一个报告的错误 github.com/mher/flower/issues/1029 ,临时解决方案是将 celery 降级为 4.4.7 作为数据包流,谢谢@Pax

标签: python celery flower


【解决方案1】:

Flower 总是落后于 Celery,所以如果你使用最新的 Celery(他们重构了 CLI),它可能会失败。坚持使用 4.4.x,直到 Flower 赶上来。

【讨论】:

【解决方案2】:

如果您希望避免降级 Celery worker,一个解决方法是运行之前版本的 Flower 独立于您的主要 Celery 安装。例如,在容器或单独的 venv 中。 Flower 只是监控您的代理,并且可以完全独立于您的 Celery 工作者运行。

Docker 中的花示例

对于您的 Django/Celery 安装,运行 Celery normally(无花):

celery -A main worker

对于Flower,使用docker imagemher/flower:0.9.5,内部使用Celery 4.4.6,是reported working

这是一个示例docker run 命令:

docker run --name flower -p 5555:5555 mher/flower:0.9.5 flower --broker=redis://redis-address

注意:您必须将代理地址更改为代理的 dns 可解析名称或 ip。 对于 rabbitmq,请使用 --broker=amqp://guest@rabbitmq-address:5672//。有关高级选项,请参阅 url documentation

一旦运行,Flower 应该在 Docker 主机的 IP:5555 上可用

您也可以创建一个 docker-compose 文件来封装运行命令中的所有参数,并使用docker-compose up -d

替代方案

如果愿意,您也可以使用pip install flower redis celery==4.4.7 在不使用 Docker 的情况下完成所有这些操作,只要它与您的主要 Celery 安装分开,然后使用 flower --broker=redis://redis-address 运行flower。单独的 venv 可能适用于此。

有关原始错误的未来更新,请参阅github issue

【讨论】:

    【解决方案3】:

    在 celery 5.0.5 上工作时遇到同样的问题,所以切换到 celery 4.4.7 版本的花 0.9.7 并且它工作正常。

    【讨论】:

      【解决方案4】:

      您可以按照许多人的建议降级 Celery,或者像我一样将 Flower 升级到最新版本,即自 2021 年 7 月以来的 1.0.0 -> https://pypi.org/project/flower/

      我可以确认最后一个版本与celery[auth,redis,tblib]==5.1.2 兼容。

      我个人建议你尝试升级包而不是降级它们,升级花比降级 celery 破坏你的项目的机会更少。

      【讨论】:

        【解决方案5】:

        也许你可以试试pip install https://github.com/mher/flower/zipball/master#egg=flower

        【讨论】:

          猜你喜欢
          • 2023-03-10
          • 1970-01-01
          • 1970-01-01
          • 2022-01-22
          • 2021-06-30
          • 2020-10-19
          • 2018-08-13
          • 2015-01-26
          • 2020-10-10
          相关资源
          最近更新 更多