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

在Heroku部署Django遇错:请求LOGGING_CONFIG但未配置设置

解决Django部署Heroku时"Requested setting LOGGING_CONFIG, but settings are not configured"错误

我之前也踩过这个坑——本地跑的Django应用完全正常,一部署到Heroku就弹出这个settings未配置的错误,折腾了好一阵才找到问题所在,给你分享几个排查方向:

1. 先检查Gunicorn启动命令的符号!

看你提供的启动命令:gunicorn ftb_core_backend.wsgi —-log-file -
注意这里的—-log-file是全角破折号!Heroku的shell根本识别不了全角符号,会把它当成命令的一部分,导致Gunicorn没有正确加载WSGI应用,自然就触发了settings未配置的错误。

把命令改成半角破折号:

gunicorn ftb_core_backend.wsgi --log-file -

更新你的Procfile里的启动命令,这是最容易忽略但又常见的问题。

2. 检查WSGI文件的代码顺序

打开你的wsgi.py,确认所有依赖Django设置的代码都在get_wsgi_application()之后执行。正确的结构应该是这样:

import os
from django.core.wsgi import get_wsgi_application

# 先设置环境变量
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ftb_core_backend.settings")
# 再加载WSGI应用
application = get_wsgi_application()

# 所有需要访问settings的代码、第三方库导入都要放在这之后
# 比如:
# from myapp.some_module import something_that_uses_settings

如果有代码在get_wsgi_application()之前就调用了需要settings的功能(比如日志配置、模型查询),就会直接触发这个错误。

3. 确认Heroku的环境变量设置

虽然你说本地已经配置了DJANGO_SETTINGS_MODULE,但还是要确认Heroku服务器上的环境变量是否正确。
在终端运行:

heroku config:get DJANGO_SETTINGS_MODULE

如果输出不是ftb_core_backend.settings,就用下面的命令设置:

heroku config:set DJANGO_SETTINGS_MODULE=ftb_core_backend.settings

4. 排查第三方库的过早初始化

有些第三方库(比如某些日志插件、缓存工具)在导入时会自动尝试访问Django设置。如果你的项目里有这类库,试试在wsgi.py里延迟导入它们,或者确保它们的初始化代码在get_wsgi_application()之后执行。

最后验证步骤

  1. 修正Procfile里的Gunicorn命令,替换全角破折号为半角
  2. 检查并调整wsgi.py的代码顺序
  3. 确认Heroku环境变量正确
  4. 重新部署:
git add . && git commit -m "fix deployment settings issue" && git push heroku master

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:40:28