如何解决Django执行迁移时decouple.UndefinedValueError: EADDRESS未找到报错
报错说明
你遇到的是python-decouple依赖库抛出的配置缺失异常,完整报错信息如下:
raise UndefinedValueError('{} not found. Declare it as envvar or define a default value.' .format(option)) decouple.UndefinedValueError: EADDRESS not found. Declare it as envvar or define a default value.
报错截图:
问题根源
你的Django项目settings.py中存在读取EADDRESS配置的代码(通用写法为config('EADDRESS')),但当前运行环境既没有配置对应的环境变量,代码调用时也没有设置兜底默认值,导致decouple读取配置失败。
解决方法
可任选以下任意一种方案处理:
- 方案1:补充.env文件配置
在项目根目录(和manage.py同级目录)找到.env文件,新增一行配置:
若不存在EADDRESS=你实际要使用的邮箱地址值.env文件直接新建即可,注意该文件不要提交到Git等版本管理工具中。 - 方案2:给配置调用添加默认值
找到settings.py中读取EADDRESS的代码,修改为带默认值的写法:
该方案适合调试场景,就算没有配置环境变量也能正常启动项目。EADDRESS = config('EADDRESS', default='你要设置的默认邮箱地址') - 方案3:临时设置系统环境变量
执行迁移命令前,先在当前终端窗口设置临时环境变量:
Windows cmd执行:
Linux/macOS终端执行:set EADDRESS=你的邮箱地址
设置完成后再执行export EADDRESS=你的邮箱地址python manage.py migrate即可正常运行。
内容的提问来源于stack exchange,提问作者NobinPegasus
相关产品推荐
相关产品推荐

