gpt4 book ai didi

Python 多个 click.options - 得到意外的关键字参数

转载 作者:行者123 更新时间:2023-11-30 22:12:32 28 4
gpt4 key购买 nike

使用 python click 时,我无法将选项传递给其中一种方法。请考虑以下代码。

import click

@click.command()
@click.option('--config', default='default.cfg', help = 'comfiguration file')
@click.option('--port', default=9093)
def foo(config_name, port):
print('Function has been successfully called..!')

if __name__ == '__main__':
foo()

我得到的错误是:

TypeError: foo() got an unexpected keyword argument 'config

堆栈跟踪是:

Traceback (most recent call last):
File "temp.py", line 10, in <module>
foo()
File "/home/sagar/anaconda3/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/home/sagar/anaconda3/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/home/sagar/anaconda3/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/sagar/anaconda3/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)

我不明白为什么会这样。我读到了一些关于argument的类似问题,即不能使用help选项,但在这种情况下,我认为我没有做任何不支持的事情。

但有趣的是:如果我删除 --config 选项(当然还有函数中的参数),那么它就可以完美工作。我确信可以使用多个选项,我尝试使用 type=string,但它也没有帮助。

最佳答案

您将该选项命名为--config ,因此 click 尝试传递名为 config 的参数至foo ,但没有configfoo的签名。想必,您想写 def foo(config, port):而不是def foo(config_name, port): .

关于Python 多个 click.options - 得到意外的关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51071919/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com