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

Django使用python-decouple读取SECRET_KEY报InterpolationSyntaxError如何解决

错误原因

你遇到的configparser.InterpolationSyntaxError报错,是因为python-decouple读取.ini配置文件时,底层依赖的configparser模块默认开启了插值功能,会把%作为插值语法的特殊标记处理,而Django自动生成的SECRET_KEY通常包含单独的%字符,不符合插值语法规则就会触发错误。

解决方法
  • 方法1:转义.ini文件中的%字符
    不需要修改任何代码,只需要把.ini配置文件里SECRET_KEY值中的所有单个%都替换成%%即可,configparser会自动把%%解析为单个%,最终读取到的SECRET_KEY和原始值完全一致。
  • 方法2:改用.env格式存储配置
    直接替换配置文件格式即可,python-decouple原生支持.env格式,该格式默认不会做插值处理,会直接读取原始字符串:
    1. 在项目根目录新建.env文件,把原.ini中的所有配置项按KEY=VALUE的格式写入,不需要设置section
    2. 删除原.ini配置文件即可,settings中config("SECRET_KEY")的代码不需要任何修改
      .env文件示例:
    SECRET_KEY=%^e=(r2l0*73)4zxv!(!4x(%(_koxr049zlesn3"
    EMAIL_HOST=smtp.xxx.com
    EMAIL_HOST_USER=你的邮箱地址
    EMAIL_HOST_PASSWORD=你的邮箱密码
    
  • 方法3:手动关闭.ini的插值功能(不推荐)
    如果你必须保留.ini格式,也可以自定义python-decouple的读取逻辑,使用configparser.RawConfigParser代替默认的解析器,关闭插值功能,但改动成本高于前两种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:48:04