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

Heroku未识别已配置的DJANGO_SETTINGS_MODULE,Django部署失败

解决Heroku部署Django时找不到workout.settings模块的问题

首先咱们拆解下你遇到的问题:明明已经设置了DJANGO_SETTINGS_MODULE=workout.settings.production,本地运行完全正常,但Heroku却报错找不到workout.settings模块。这大概率是Python包结构识别问题或者项目文件路径配置不对,下面是具体的排查和解决步骤:

1. 给settings目录添加__init__.py文件

Python要把一个文件夹识别为可导入的包,必须要有__init__.py文件(哪怕是空的)。你的settings目录目前只有production.py和development.py,缺少这个关键文件,导致Heroku无法识别workout.settings这个子包。

解决方法:
在workout/settings/目录下创建一个空的__init__.py文件,然后提交到git:

touch workout/settings/__init__.py
git add workout/settings/__init__.py
git commit -m "Add __init__.py to settings directory"

2. 确认manage.py的位置和内容

manage.py应该放在项目根目录(也就是包含workout文件夹的那个目录),而不是workout文件夹内部。如果位置错了,Python的模块搜索路径会混乱,导致找不到workout.settings。

正确的项目结构应该是这样:

你的项目根目录/
├── workout/
│   ├── settings/
│   │   ├── __init__.py
│   │   ├── production.py
│   │   └── development.py
│   ├── __init__.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

同时检查manage.py的内容,确保默认的settings路径正确:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    # 默认用开发环境配置,Heroku的环境变量会覆盖这个值
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "workout.settings.development")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)

3. 检查git是否正确包含必要文件

确保__init__.py没有被.gitignore排除。打开你的.gitignore文件,看看有没有类似__init__.py的规则,如果有就删掉,然后重新提交文件。

4. 重置Heroku缓存(可选)

有时候Heroku会缓存旧的依赖或文件结构,导致新文件不生效。可以先清空缓存再推送:

heroku repo:purge_cache
git push heroku master

为什么本地正常但Heroku报错?

本地运行时,你是在正确的项目根目录下执行命令,Python会自动把当前目录加入模块搜索路径;而Heroku部署时,它会按照git的根目录设置Python路径,如果包结构不完整(比如缺少__init__.py),就会出现导入失败的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:31:31