2016-11-26 2 views
1

ich klicken versuche (Befehlszeilenschnittstellenpaket für Python), während der folgende Code ausgeführt erhalte ich Fehler Error: No such command "abcd"klicken kein solcher Befehl gefunden

@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() 

ich leite als

python playclick.py --source this abcd 

Antwort

1

folgt "abcd" wird wegen des Platzes als separater Befehl behandelt (dies ist eine Eigenschaft Ihrer Shell, nicht des Klickens).

Wenn Sie den Wert von source sein „diese abcd“ wollen, verwenden Zitate:

python playclick.py --source "this abcd" 

tatsächlich das abcd Argument liefern, Sie die hello Befehl aufrufen müssen - das Argument für dieser Befehl:

python playclick.py --source this hello 123456 

der hello Befehl ein Argument von 123456 haben.

Aufbrechen der ganzen Linie:

--source this liefert die source Argument an die Haupt cli Befehl. hello ist der Befehl zum Ausführen (versuchen Sie python playclick.py --source this und Sie erhalten einen Fehler, weil es keinen Befehl gibt), und 123456 ist das Argument mit dem Namen abcd zu diesem Befehl.

+0

danke, wie das Argument dann übergeben? – DevC

+0

@DevC sehe meine Bearbeitungen. –

Verwandte Themen