Django部署Railway遇ModuleNotFoundError:找不到mainApp.wsgi模块
解决ModuleNotFoundError: No module named 'mainApp.wsgi'问题
根据你的项目结构(wsgi.py路径为mainApp/mainApp/wsgi.py),问题核心是Gunicorn无法正确定位到Django的wsgi模块,以下是具体解决方案:
1. 修正Procfile配置
你的项目根目录下的mainApp是外层文件夹,真正包含wsgi.py的是内层的mainApp目录。需要让Gunicorn先进入外层mainApp目录,或者将其加入Python路径,正确的Procfile配置二选一即可:
- 方式一(切换工作目录):
web: cd mainApp && gunicorn mainApp.wsgi --log-file - - 方式二(设置Python路径):
(Railway容器默认工作目录为项目根目录web: PYTHONPATH=/app/mainApp gunicorn mainApp.wsgi --log-file -/app,所以外层mainApp的路径是/app/mainApp)
2. 检查必要文件与配置
- 确认内层
mainApp目录下存在空的__init__.py文件,确保Python将其识别为合法模块。 - 检查
settings.py中的ALLOWED_HOSTS,添加Railway分配的域名(测试阶段可临时设为["*"],生产环境需指定具体域名)。
3. 本地验证
先在本地项目根目录执行以下命令测试,确认配置有效后再推送至Railway:
cd mainApp && gunicorn mainApp.wsgi
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

