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

Django中从.env加载SECRET_KEY失败,运行migrate报KeyError

KeyError: 'SECRET_KEY' 问题解决

问题场景

运行python manage.py migrate命令时触发KeyError: 'SECRET_KEY'错误,相关代码如下:

settings.py 代码

import os
import dotenv

dotenv_file = os.path.join(BASE_DIR, ".env")
if os.path.isfile(dotenv_file):
    dotenv.load_dotenv(dotenv_file)

# UPDATE secret key
SECRET_KEY = os.environ['SECRET_KEY']

.env 文件内容

SECRET_KEY="TOPSECRETKEY"

排查与解决步骤

  • 验证.env文件路径
    临时在settings.py中添加print(BASE_DIR),执行python manage.py shell查看输出路径,确认.env文件确实放在该目录下。如果路径不符,调整dotenv_file的路径配置。

  • 修正配置加载逻辑
    避免直接依赖系统环境变量,改用dotenv_values直接读取配置文件内容,增加容错性:

    import os
    import dotenv
    
    dotenv_file = os.path.join(BASE_DIR, ".env")
    if os.path.isfile(dotenv_file):
        env_vars = dotenv.dotenv_values(dotenv_file)
        SECRET_KEY = env_vars.get('SECRET_KEY')
    else:
        SECRET_KEY = os.environ.get('SECRET_KEY')
    
  • 调整.env文件格式
    移除键值对的引号,dotenv默认会将引号解析为值的一部分,修正后的.env内容:

    SECRET_KEY=TOPSECRETKEY
    
  • 确认python-dotenv安装状态
    确保已安装依赖:pip install python-dotenv,若版本过旧,执行pip install --upgrade python-dotenv更新。

内容的提问来源于stack exchange,提问作者Bob The Builder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:43:13