2016-11-26 63 views
1

我试图点击(对于Python命令行接口封装),在运行下面的代码,我得到错误Error: No such command "abcd"点击没有这样的命令发现

@click.group() 
@click.option('--source', required=True) 
@click.pass_context 
def cli(ctx, source): 
    ctx.obj = "pass it" 

@cli.command() 
@click.argument('abcd') 
@click.pass_context 
def hello(ctx, abcd): 
    click.echo("Hello, World") 


if __name__ == '__main__': 
    cli() 

我运行它,如下所示

python playclick.py --source this abcd 

回答

1

由于空间的原因,“abcd”被当作一个单独的命令处理(这是你的shell的一个特性,而不是特别的点击)。

如果你想的source值是“这个ABCD”,使用引号:

python playclick.py --source "this abcd" 

实际提供的abcd说法,你需要调用hello命令 - 该参数是该命令:

python playclick.py --source this hello 123456 

hello命令将有123456参数。

打破整行:

--source this提供source参数传递给主cli命令。 hello是要运行的命令(尝试python playclick.py --source this,因为没有命令,您将得到一个错误),并且123456是该命令的名为abcd的参数。

+0

谢谢,那么如何传递论据呢? – DevC

+0

@DevC查看我的编辑。 –

相关问题