Heroku部署Django项目遇ModuleNotFoundError问题求助
解决Django部署Heroku时的ModuleNotFoundError(找不到'opportunities.settings.heroku_staging')
检查settings模块的文件结构与命名
- 确认
opportunities/settings/目录下存在heroku_staging.py文件,且文件名完全匹配大小写(Heroku的Linux环境严格区分大小写,本地Windows/macOS可能不敏感) - 确保
settings目录下有__init__.py文件(空文件即可),Python需要这个文件来识别该目录为可导入模块
- 确认
验证Heroku环境变量与dyno状态
- 用Heroku CLI执行
heroku config:get DJANGO_SETTINGS_MODULE,确认输出是opportunities.settings.heroku_staging,无拼写错误或多余空格 - 若修改过环境变量,执行
heroku restart重启dyno,确保配置生效
- 用Heroku CLI执行
排查依赖与构建日志
- 确认
requirements.txt包含Django 4.0及所有必要依赖,无遗漏 - 查看Heroku构建阶段日志:
heroku logs --tail --source build,检查依赖安装是否有报错,确保构建过程完整
- 确认
确认项目结构与Procfile配置
- 确保
manage.py和opportunities主app目录处于同一层级,Heroku能正确识别项目根目录 - 检查
Procfile内容是否正确,例如:web: gunicorn opportunities.wsgi --log-file -,其中opportunities.wsgi需匹配你的项目结构
- 确保
本地模拟Heroku环境测试
- 在本地终端设置环境变量后运行检查命令:
export DJANGO_SETTINGS_MODULE=opportunities.settings.heroku_staging python manage.py check - 如果本地也报错,说明问题出在settings模块本身或本地路径配置;如果本地正常,继续排查Heroku的Git文件同步问题
- 在本地终端设置环境变量后运行检查命令:
检查.gitignore配置
- 查看
.gitignore文件,确认没有误排除heroku_staging.py或settings目录下的文件 - 执行
git ls-files,确认opportunities/settings/heroku_staging.py已被Git追踪并推送到Heroku
- 查看
内容的提问来源于stack exchange,提问作者compmonks
相关产品推荐
相关产品推荐

