首页 > 解决方案 > Gin config - 即使在示例中也会引发 ValueError

问题描述

我想为一个项目使用 gin 配置,但即使是最基本的示例也会引发ValueError: No configurable matching {}.

我直接从这里复制了这个例子

配置文件

make_drink.drink_name = "G&T"
make_drink.ingredients = ["Gin", "Tonic", "Lemon"]
make_drink.ice = False

主文件

import gin
gin.parse_config_file("./config.gin")

@gin.configurable
def make_drink(drink_name:str, ingredients:list, ice:bool=False):
    print(f"New drink called: {drink_name}")
    print(f"Drink contains: " + ", ".join(ingredients))
    if ice is True:
        print("With ice")
    else:
        print("Without ice")

make_drink()

结果总是一样的:

ValueError: No configurable matching 'make_drink'.
  In file "./config.gin", line 1
    make_drink.drink_name = "G&T"

先感谢您!

标签: pythonconfig

解决方案


好吧,我明白了。显然,必须将gin.parse_config_file("./config.gin")命令放在主要位置。

import gin

@gin.configurable
def make_drink(drink_name:str, ingredients:list, ice:bool=False):
    print(f"New drink called: {drink_name}")
    print(f"Drink contains: " + ", ".join(ingredients))
    if ice is True:
        print("With ice")
    else:
        print("Without ice")

if __name__=='__main__':
    gin.parse_config_file("./config.gin")
    make_drink()

如果有人可以向我解释,为什么我在导入后放置它不起作用,我将不胜感激。


推荐阅读