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

如何确保.env文件中变量的修改在Django项目中生效?

Django .env 修改后重启不生效的排查与解决
  • 检查.env加载时机与代码逻辑
    确认项目中加载.env的代码在服务器启动时会重新执行,比如settings.py里的加载代码不能被模块缓存跳过。示例正确加载方式:

    import os
    from dotenv import load_dotenv
    
    # 明确指定.env路径,避免相对路径问题
    load_dotenv(os.path.join(os.path.dirname(os.path.abspath(__file__)), '.env'))
    

    另外,完全停止服务器后再重新启动,不要依赖自动重载功能,部分情况下自动重载不会重新加载环境变量相关的模块。

  • 验证环境变量实际读取值
    在settings.py中添加打印语句,启动服务器时查看控制台输出,确认是否读取到修改后的变量:

    print("目标变量值:", os.getenv("YOUR_VARIABLE_NAME"))
    

    如果输出仍是旧值,说明.env文件未被正确读取,检查路径是否正确,或者是否有权限读取该文件。

  • 排查系统环境变量覆盖问题
    系统级环境变量优先级可能高于.env文件中的设置,通过命令行验证:

    # Linux/macOS
    echo $YOUR_VARIABLE_NAME
    
    # Windows
    echo %YOUR_VARIABLE_NAME%
    

    如果系统中存在该变量,会覆盖.env的设置,需删除系统环境变量或调整加载逻辑。

  • 清理Python字节码缓存
    python manage.py clear_cache仅清理Django缓存框架,不影响Python模块缓存。删除项目中的__pycache__文件夹,强制重新加载模块:

    # Linux/macOS
    find . -name "__pycache__" -type d -exec rm -r {} +
    
    # Windows
    for /d /r . %d in (__pycache__) do @if exist "%d" rm -r "%d"
    

内容的提问来源于stack exchange,提问作者Mahyah Binti Idris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:42:07