Python 多个 click.options - 得到意外的关键字参数
Python multiple click.options - got unexpected keyword argument
使用 python 单击时,我无法将选项传递给其中一种方法。请考虑以下代码。
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
,但 foo
中没有 config
的签名。据推测,您想写 def foo(config, port):
而不是 def foo(config_name, port):
.
使用 python 单击时,我无法将选项传递给其中一种方法。请考虑以下代码。
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
,但 foo
中没有 config
的签名。据推测,您想写 def foo(config, port):
而不是 def foo(config_name, port):
.