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

RHEL7部署Django2.0遇'myproject.wsgi'模块未找到错误求助

解决RHEL7下Gunicorn启动Django应用时的ModuleNotFoundError问题

你遇到的ModuleNotFoundError: No module named 'myproject.wsgi'错误,核心和Gunicorn启动脚本的不完整配置、项目路径映射有关,我帮你梳理几个关键修复点:

1. 补全Gunicorn启动命令(最紧急的问题)

你的gunicorn_start脚本最后一行exec venv/bin/...是不完整的,Gunicorn需要明确指定WSGI入口才能找到Django的启动模块。把这行替换为完整的启动命令:

exec venv/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
  --name $NAME \
  --workers $WORKERS \
  --user=$USER --group=$GROUP \
  --bind=$BIND \
  --log-level=$LOGLEVEL \
  --log-file=-

这里的${DJANGO_WSGI_MODULE}:application是核心,它告诉Gunicorn加载你配置的garage.wsgi模块里的application对象。

2. 验证项目路径与PYTHONPATH配置

从你的脚本看,DJANGODIR=/opt/garage/garage,需要确认:

  • 这个目录下是否确实存在wsgi.py和settings.py文件?
  • 如果你的项目结构是/opt/garage/(根目录)包含garage/(Django配置目录)和venv/,那DJANGODIR应该改为/opt/garage,同时source venv/bin/activate的路径也要对应调整(如果venv在上级目录,要改成source ../venv/bin/activate)。

PYTHONPATH=$DJANGODIR:$PYTHONPATH的作用是让Python找到你的Django模块,确保DJANGODIR是包含garage目录的父级目录,这样import garage.settings才能正常生效。

3. 检查Virtualenv激活路径是否正确

先手动进入/opt/garage/garage目录,执行source venv/bin/activate看看是否能正常激活虚拟环境。如果提示找不到文件,说明你的venv环境创建在上级目录(比如/opt/garage/venv),需要把脚本里的激活命令改为:

source ../venv/bin/activate

4. 确认目录与文件权限

确保user1对以下路径有足够权限:

  • /opt/garage/garage:读取项目代码文件
  • /opt/garage/run:创建和读写gunicorn.sock文件(可以执行chown -R user1:user1 /opt/garage/run调整权限)

5. 验证WSGI文件内容

打开/opt/garage/garage/wsgi.py,确认内容符合Django 2.0的标准格式:

import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'garage.settings')

application = get_wsgi_application()

这里的DJANGO_SETTINGS_MODULE必须和你脚本里的配置完全一致。

最后给gunicorn_start脚本添加执行权限:chmod +x gunicorn_start,再尝试启动脚本,应该就能解决模块找不到的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:48:18