1

我正在编写我的第一个特定于环境的 fabfile。本质上,我为每个环境创建了一个 env 设置文件,其中包含一个带有用户、密码和主机的 json 字符串。然后我对在实际部署功能之前调用的每个环境都有一个任务。像这样的东西:

晶圆厂开发部署应用程序

开发任务(在本例中)调用我编写的函数,该函数解析相关设置文件并尝试将 env 设置设置为解析值。

def set_env(env):
    json_data = open(env + '_settings.env', 'r')
    env_data = json.load(json_data)
    json_data.close()
    env.user = env_data['user']
    env.password = env_data['password']

但是,当我调用此函数时,我收到以下我似乎无法解读的错误:

env.user = "" + env_data['user']
AttributeError: 'str' object has no attribute 'user'

我通过打印值测试了文件是否正在被读取,它们确实是正确的。我假设我在访问 dict 值时做错了,但似乎找不到正确的搜索组合来给我一个有效的答案。

4

1 回答 1

4

更改参数名称,因为它正在替换您的全局变量env。就像是:

def set_env(env_str):
    json_data = open(env_str + '_settings.env', 'r')
    env_data = json.load(json_data)
    json_data.close()
    env.user = env_data['user']
    env.password = env_data['password']
于 2013-07-30T04:46:31.167 回答