You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Celery异步任务Demo运行失败求助:ImportError: cannot import name LRUCache

解决Celery启动时的ImportError: cannot import name LRUCache问题

你遇到的这个导入错误其实是Celery与kombu版本不兼容导致的,我来帮你拆解问题和解决办法:

问题根源

Celery 4.1.0的内部代码还在尝试从kombu.utils.functional路径导入LRUCache类,但你安装的kombu 4.1.0已经把这个类迁移到了kombu.utils.limits路径下,这种导入路径的不匹配直接引发了ImportError。

解决方案

方案1:匹配兼容的依赖版本(推荐)

Celery 4.1.0官方推荐搭配kombu 4.0.x系列版本,你可以通过降级kombu来彻底解决问题:
在虚拟环境中执行以下命令:

pip install kombu==4.0.2

完成后,重新启动Celery Worker:

celery -A tasks worker --loglevel=info

这个方法最稳妥,不会破坏现有代码结构,也能保证依赖之间的兼容性。

方案2:手动修改Celery的导入代码(不推荐)

如果你不想降级kombu,可以临时修改Celery的内部导入逻辑:

  1. 找到虚拟环境中Celery的安装目录,比如venv/lib/python3.6/site-packages/celery/utils/collections.py
  2. 打开文件,找到这一行:
from kombu.utils.functional import LRUCache
  1. 修改为:
from kombu.utils.limits import LRUCache
  1. 保存文件后重启Worker。

⚠️ 注意:这个方法只是临时修复,后续升级Celery时会被覆盖,只建议在特殊场景下使用。

额外检查点

  • 确保你始终在虚拟环境中执行命令,避免全局Python环境的包干扰,可以用pip list确认当前环境的依赖版本是否正确。
  • 虽然当前错误和RabbitMQ无关,但后续运行异步任务前,记得确认RabbitMQ服务处于正常运行状态。

内容的提问来源于stack exchange,提问作者Raunak Agarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:30:04