部署DRF项目至Render时Gunicorn出现ModuleNotFoundError求助
解决DRF项目部署Render时的ModuleNotFoundError问题
问题根源
你的core模块位于django_project目录下,但Render默认工作目录是项目根目录(即包含manage.py、django_project的目录),Python无法直接识别django_project内部的core模块,同时启动命令未做路径适配,导致gunicorn找不到目标模块。
解决方案
1. 修正启动命令(二选一即可)
方式一:切换工作目录到django_project
修改render.yaml中的startCommand:
startCommand: "gunicorn --chdir django_project core.wsgi:application"
如果使用Procfile,同步修改为:
web: gunicorn --chdir django_project core.wsgi:application
方式二:设置PYTHONPATH环境变量
在render.yaml的envVars中添加路径配置:
envVars: - key: PYTHONPATH value: django_project - key: DJANGO_SETTINGS_MODULE value: core.settings # 其他已有环境变量...
此时启动命令可保持gunicorn core.wsgi:application不变。
2. 验证关键配置
- 确认
django_project/core目录下存在__init__.py(你的项目结构已满足); - 确保
requirements.txt中包含gunicorn,若缺失需添加; DJANGO_SETTINGS_MODULE保持core.settings即可,无需修改。
完成以上调整后,gunicorn就能正确识别core模块,解决启动时的ModuleNotFoundError问题。
内容的提问来源于stack exchange,提问作者Laurie Crean
相关产品推荐
相关产品推荐

