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

执行celery -A backend worker报No module named 'rest_framework'如何解决

问题原因与解决方案

问题根因

报错的核心原因是运行Celery命令的Python环境,和Poetry安装依赖的项目虚拟环境不匹配:

  • 你执行celery命令用的是系统全局Python环境(可通过报错日志里的/usr/local/bin/celery路径佐证),而djangorestframework是Poetry安装在项目专属虚拟环境中的依赖,全局环境没有安装该包,因此Celery启动加载Django的INSTALLED_APPS配置时找不到对应模块。

解决方案

方法1:激活虚拟环境后执行命令

进入项目根目录后,先执行命令激活Poetry虚拟环境,再启动Celery即可:

# 激活项目虚拟环境
poetry shell
# 启动Celery
celery -A backend worker -l info

方法2:用poetry run前缀直接执行命令

无需手动激活虚拟环境,直接在启动命令前加poetry run前缀,Poetry会自动调用项目虚拟环境的依赖执行命令:

poetry run celery -A backend worker -l info

验证与可选检查

  1. 执行启动命令前可先运行pip list | grep djangorestframework,如果输出为空则说明当前环境确实未安装该依赖,使用上述两种方法执行后可再次验证,能正常输出版本信息即为环境匹配成功。
  2. 如果上述操作后仍报错,可检查两个配置:
    • 确认backend配置目录下存在空的__init__.py文件,用于将目录标记为Python包,确保Celery可以正常加载配置
    • 确认settings.py的INSTALLED_APPS中rest_framework拼写正确,无多余空格或拼写错误

内容的提问来源于stack exchange,提问作者A.K.M. Adib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:30:03