【发布时间】:2017-06-12 20:54:13
【问题描述】:
我正在尝试将一些环境变量读入我的 ConfigParser 文件中。
我指的是this answer,但我得到了
"InterpolationDepthError: Value interpolation too deeply recursive" error.
section: [amazon]
option : amazon_access_key
rawval : %(AMAZON_ACCESS_KEY)s
这是我的配置文件的一部分:
[amazon]
amazon_access_key=%(AMAZON_ACCESS_KEY)s
amazon_secret_key=%(AMAZON_SECRET_KEY)s
这就是我写的文件:
from ConfigParser import SafeConfigParser
import os
config = SafeConfigParser(os.environ)
config.read('config.txt')
当我在“amazon”部分直接调用这些变量时,我得到了上述错误。
当我在“默认”部分调用这些变量时,例如:
[default]
aws_access_key=%(AMAZON_ACCESS_KEY)s
aws_secret_key=%(AMAZON_SECRET_KEY)s
[amazon]
amazon_access_key=%(aws_access_key)s
amazon_secret_key=%(aws_secret_key)s
我收到以下错误:
ConfigParser.InterpolationMissingOptionError: Bad value substitution:
section: [amazon]
option : amazon_access_key
key : aws_access_key
rawval : %(aws_access_key)s
我在这里错过了什么?
另外,我怎样才能为本地和生产部署提供单独的配置文件?目前,本地和生产环境的所有配置都是相同的。
【问题讨论】:
-
您是否尝试过使用不影响原始键的环境变量名称?此外,您可能想查看
[amazon]部分下方的选项卡是否重要。 -
[amazon] 部分下没有标签。
标签: python environment-variables configparser