使用PM2后台运行Django应用时报Django模块不存在如何解决
问题根因
你的PM2配置存在关键参数缺失,核心问题是未指定Django项目的工作目录,Python解释器执行manage.py时无法正确加载项目路径下的依赖,即使虚拟环境已经安装Django也会触发模块找不到的报错。此外原有配置的JSON格式不符合标准规范,也可能导致参数加载异常。
修复方案
1. 调整PM2配置文件
新增cwd字段指定项目根目录,同时修正JSON格式问题,修改后的完整配置如下:
{ "apps": [ { "name": "lab", "script": "/home/ubuntu/sample-django-app/manage.py", "args": ["runserver", "0.0.0.0:8080"], "cwd": "/home/ubuntu/sample-django-app", "exec_mode": "fork", "instances": 1, "wait_ready": true, "autorestart": true, "max_restarts": 5, "interpreter": "/home/ubuntu/venv/bin/python3" } ] }
2. 重启PM2进程生效
执行以下命令完成重启:
- 删除原有异常进程:
pm2 delete lab - 用新配置启动进程:
pm2 start <你的配置文件名.json> - 验证运行状态:
pm2 logs lab查看是否还有报错信息
可选优化建议
- 生产环境不推荐使用Django自带的
runserver启动,建议搭配Gunicorn/uWSGI等WSGI服务器后再用PM2托管,性能和稳定性更高 - 如果修改配置后仍有报错,可执行命令
/home/ubuntu/venv/bin/python3 -c "import django; print(django.__version__)"验证虚拟环境的Django安装状态,排除虚拟环境损坏的问题
内容的提问来源于stack exchange,提问作者MD Nasirul Islam
相关产品推荐
相关产品推荐

