2016-11-26 59 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查看我的編輯。 –

相關問題