Django DEBUG环境变量未设置EnvError问题及代码正确性排查
问题解答
代码正确性判断
DEBUG = env.bool("DEBUG")这段代码本身没有语法错误,问题出在环境变量的加载流程或配置细节上。
解决步骤
- 确认
.env文件配置- 必须放在项目根目录(与
manage.py同级),内容格式为DEBUG=True,注意等号两边不能有空格,也不要给True加引号。 - 检查文件是否被误命名(比如
.env.txt,系统隐藏扩展名导致的问题)。
- 必须放在项目根目录(与
- 确保settings.py中正确加载.env文件
在初始化Env对象后,必须调用read_env()方法,完整代码片段如下:from environs import Env # 初始化Env并加载.env文件 env = Env() env.read_env() # 这行是核心,缺失会导致无法读取.env中的变量 # 读取DEBUG变量 DEBUG = env.bool("DEBUG") - 验证environs依赖安装
确认已通过pip install environs安装该依赖,或检查项目的requirements.txt中是否包含environs。 - 检查终端工作目录
运行python manage.py runserver时,终端的当前工作目录必须是项目根目录(即.env所在目录),如果终端在子目录(如django_project)运行,程序会找不到.env文件。 - 排查环境变量冲突
重启终端清除可能的环境变量缓存,避免系统全局环境变量与本地.env的配置冲突。可以临时添加print(env.dump())在DEBUG = env.bool("DEBUG")前,查看已加载的环境变量列表,确认DEBUG是否存在。
内容的提问来源于stack exchange,提问作者user17598401
相关产品推荐
相关产品推荐

