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

部署Django项目到Heroku时出现django_heroku模块找不到错误如何解决?

解决Heroku部署Django时django_heroku找不到的问题

根据你提供的错误信息,核心问题是Heroku服务器上未安装django-heroku模块,尽管你的requirements.txt中已声明。可以按以下步骤排查解决:

一、先排查依赖安装的基础问题

  1. 确认requirements.txt的位置与提交状态

    • 确保requirements.txt在项目根目录(和manage.py同级),而非子目录中。
    • 检查.gitignore文件,确认没有将requirements.txt加入忽略列表,否则该文件不会被推送到Heroku。
    • 执行以下命令重新提交文件:
      git add requirements.txt
      git commit -m "Ensure requirements.txt is tracked"
      git push heroku main
      
  2. 验证django-heroku的兼容性
    django-heroku==0.3.1是较旧版本,可能与Python 3.11存在兼容性问题。更可靠的方式是直接移除该依赖(django-heroku已停止维护),改用手动配置适配Heroku环境。

二、推荐方案:移除django-heroku,手动配置Heroku环境

1. 更新settings.py

移除所有与django-heroku相关的代码:

  • 删除import django_heroku语句
  • 从INSTALLED_APPS中移除django_heroku
  • 删除末尾的django_heroku.settings(locals())

然后添加以下适配Heroku的配置:

import os
import dj_database_url

# 数据库配置(自动读取Heroku的DATABASE_URL环境变量)
DATABASES = {
    'default': dj_database_url.config(default='sqlite:///' + os.path.join(BASE_DIR, 'db.sqlite3'))
}

# 静态文件配置(用于Heroku收集静态文件)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

# 允许的主机
ALLOWED_HOSTS = []
if os.getenv('HEROKU_APP_NAME'):
    ALLOWED_HOSTS.append(f"{os.getenv('HEROKU_APP_NAME')}.herokuapp.com")
ALLOWED_HOSTS += ['localhost', '127.0.0.1']

# 日志配置(适配Heroku的日志系统)
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'root': {
        'handlers': ['console'],
        'level': 'INFO',
    },
}

2. 更新requirements.txt

移除django-heroku==0.3.1,添加以下必要依赖:

dj-database-url>=0.5.0
psycopg2-binary>=2.8
whitenoise>=6.0

执行命令更新依赖列表并提交:

pip freeze > requirements.txt
git add requirements.txt settings.py
git commit -m "Replace django-heroku with manual Heroku config"
git push heroku main

3. 确认Procfile配置

你的Procfile配置是正确的,再次核对:

web: gunicorn albion.wsgi:application --log-file -
release: python manage.py migrate

注意:如果你的Django项目根模块是大写的Albion,则需将albion.wsgi改为Albion.wsgi。

三、验证部署

推送代码后,执行以下命令查看Heroku构建日志,确认依赖安装和项目启动正常:

heroku logs --tail

若没有报错,访问你的Heroku应用URL即可验证是否运行正常。

内容的提问来源于stack exchange,提问作者Doing Things Occasionally

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:53:16