Django虚拟环境通过systemd启动gunicorn报No module named 'gunicorn'求助
问题原因分析
你手动执行的gunicorn是全局环境下的安装包,而systemd配置中调用的是虚拟环境/opt/envs/automation-console-env内的gunicorn可执行文件,该文件虽然存在,但对应虚拟环境的Python依赖库中没有安装gunicorn,才会触发模块找不到的报错。
解决步骤
- 第一步:验证虚拟环境内gunicorn安装状态
执行以下命令检查虚拟环境内是否安装了gunicorn:
/opt/envs/automation-console-env/bin/pip list | grep gunicorn
如果没有输出结果,直接在虚拟环境内安装gunicorn即可:
/opt/envs/automation-console-env/bin/pip install gunicorn
- 第二步:验证模块可用性
执行以下命令确认虚拟环境的Python可以正常加载gunicorn:
/opt/envs/automation-console-env/bin/python -c "import gunicorn; print('gunicorn load success')"
如果命令执行报错,说明你重建虚拟环境时依赖安装有异常,可以删除原有虚拟环境目录后重新创建,再重新安装所有项目依赖。
- 第三步:修正service配置错误
你当前配置的WorkingDirectory为虚拟环境目录,属于错误配置,需要修改为Django项目的根目录(即包含django_forms文件夹的上级目录),否则后续gunicorn会找不到django_forms.wsgi模块。 - 第四步:重载配置重启服务
修改完成后执行以下命令生效:
systemctl daemon-reload systemctl restart gunicorn
重启后执行systemctl status gunicorn即可查看服务运行状态。
内容的提问来源于stack exchange,提问作者RobTheRobot16
相关产品推荐
相关产品推荐

