Django+Celery+Redis环境启动Celery Worker时出现AttributeError错误求助
Django+Celery+Redis环境启动Celery Worker时出现AttributeError错误求助
看起来你遇到的这个AttributeError: 'NoneType' object has no attribute 'Redis'错误,本质是Celery依赖的Kombu库无法正常导入Redis Python客户端导致的,大概率是版本兼容问题或者依赖缺失,我来给你几个可行的解决办法:
1. 确认Redis Python客户端已正确安装
首先检查你的项目虚拟环境里是否安装了redis库(Celery连接Redis必须依赖它),如果没装,执行以下命令安装:
pip install redis
2. 调整Redis客户端与Celery的版本兼容性
如果已经安装了redis库但还是报错,很大概率是版本不兼容:
- 如果你用的是Celery 5.x及以下版本,建议降级redis-py到4.x系列(5.x版本的redis-py做了API改动,旧版Celery/Kombu无法适配),执行:
pip install redis==4.6.0 - 如果你想保持最新的redis-py,那可以尝试升级Celery到最新稳定版,确保两者兼容:
pip install --upgrade celery
3. 验证虚拟环境是否正确激活
有时候容易忽略的点:确保你运行Celery命令时,已经激活了项目对应的虚拟环境,不然Celery会使用全局Python环境的依赖,可能找不到正确的redis库。
4. 确认Redis容器正常运行
最后再检查你的Redis容器是否在正常工作:
- 执行
docker ps查看容器状态,确认Redis容器处于运行状态 - 可以尝试用redis-cli连接测试:
redis-cli -h 0.0.0.0 -p 6379,如果能正常连接,说明Redis服务本身没问题
按照上面的步骤操作后,再重新运行Celery Worker命令:
celery -A social_media worker -l info
应该就能解决这个错误了。
备注:内容来源于stack exchange,提问作者Smile1
相关产品推荐
相关产品推荐

