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

部署Django应用至Heroku遇ModuleNotFoundError问题求助

解决Django部署Heroku时ModuleNotFoundError: No module named 'dashboard_app.settings'的问题

我来帮你一步步排查这个问题!本地正常但Heroku部署出错,通常都是目录结构、Git提交或者Heroku环境配置的小细节问题,我们逐一解决:


1. 确认dashboard_app的模块标识有效性

Python需要目录里存在__init__.py才能将其识别为可导入的模块。你重命名应用目录后,会不会漏掉了这个文件?

  • 检查本地dashboard_app目录,确保里面有一个空白的__init__.py文件
  • 用git status确认这个文件已被提交到Git,否则Heroku拉取代码时会缺失该文件,导致无法识别模块

2. 核对项目目录结构是否合规

你的目录结构必须符合Django标准(manage.py在项目根目录,dashboard_app是它的直接子目录),示例结构如下:

你的项目根目录/
├── manage.py
├── dashboard_app/
│   ├── __init__.py
│   ├── settings.py
│   ├── wsgi.py
│   ├── urls.py
│   └── ...(其他应用文件)
├── requirements.txt
└── Procfile

如果manage.py不在根目录,或者dashboard_app嵌套在其他子目录里,Heroku就会找不到目标模块。

3. 检查Heroku的环境配置与依赖

  • 确认你已在Heroku上正确设置PRODUCTION环境变量:
    heroku config:set PRODUCTION=True
    
  • 检查requirements.txt是否包含所有必要依赖(比如Django、whitenoise等),且该文件已提交到Git。Heroku完全依赖这个文件安装环境,缺少依赖会引发各类导入错误。

4. 直接在Heroku容器内调试(最有效排查方式)

通过远程容器可以直观看到Heroku上的实际环境:

  1. 进入Heroku远程容器:
    heroku run bash
    
  2. 查看目录结构,确认dashboard_app存在:
    ls -la
    
  3. 尝试手动导入settings模块,获取精准报错:
    python -c "import dashboard_app.settings"
    
  4. 也可以手动执行collectstatic命令,观察实时错误:
    python manage.py collectstatic --noinput
    

5. 确认Git提交内容完整

有时候本地文件未被Git跟踪,导致Heroku上缺失对应文件:

  • 用git log确认最近的提交包含dashboard_app目录的所有文件
  • 如果存在未提交的文件,执行git add .和git commit -m "补充应用文件"后,重新部署到Heroku

如果以上步骤仍未解决问题,可以提供Heroku的构建日志或容器内的目录结构信息,我再帮你进一步分析!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:34:39