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

Ubuntu20.04服务器出现ModuleNotFoundError: No module named 'celery'错误求助

问题分析与解决方案

核心矛盾

报错显示ModuleNotFoundError: No module named 'celery',但任务最终执行成功,说明主进程/Worker初始化时存在环境不匹配问题,但实际执行任务的环境是正常的,大概率是Supervisor配置的Python环境和项目虚拟环境不一致导致的。

解决步骤

1. 确认项目虚拟环境路径

找到Django项目使用的虚拟环境位置,比如用venv创建的环境路径可能是/home/toch/outdoorsy/venv。在项目目录下执行命令查看:

echo $VIRTUAL_ENV

2. 修改Supervisor的Celery配置文件

找到Supervisor中Celery的配置文件(通常在/etc/supervisor/conf.d/目录下,比如celery.conf),确保启动命令使用项目虚拟环境的Python解释器,而非系统默认Python。

原错误配置示例:

command=celery -A core worker -l info

修改为使用虚拟环境的Celery命令:

command=/home/toch/outdoorsy/venv/bin/celery -A core worker -l info

或者先激活虚拟环境再启动:

command=/bin/bash -c "source /home/toch/outdoorsy/venv/bin/activate && celery -A core worker -l info"

3. 重启Supervisor与Celery进程

执行命令更新配置并重启服务:

supervisorctl reread
supervisorctl update
supervisorctl restart celery

4. 验证环境一致性

  • 查看Celery进程PID,检查其运行环境的PATH:
ps aux | grep celery
# 替换下方PID为实际进程号
cat /proc/PID/environ | tr '\0' '\n' | grep PATH
  • 确认虚拟环境中已安装Celery:
/home/toch/outdoorsy/venv/bin/pip list | grep celery

5. 其他排查方向

  • 若近期更新过依赖,重新安装项目依赖:/home/toch/outdoorsy/venv/bin/pip install -r requirements.txt
  • 检查core/__init__.py和celery_config.py的导入路径是否存在错误
  • 确认Supervisor配置中user字段对应的用户,拥有项目目录和虚拟环境的访问权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:22:42