单击未找到此类命令

Dev*_*evC 5 python command-line-interface

我正在尝试单击(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()
Run Code Online (Sandbox Code Playgroud)

我运行如下

python playclick.py --source this abcd
Run Code Online (Sandbox Code Playgroud)

Rus*_*hal 3

由于空格,“abcd”被视为一个单独的命令(这是 shell 的特征,而不是专门针对单击的特征)。

\n\n

如果您希望 的值为source“this abcd”,请使用引号:

\n\n
python playclick.py --source "this abcd"\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

要实际提供abcd参数,您需要调用hello命令 \xe2\x80\x93 参数适用于该命令:

\n\n
python playclick.py --source this hello 123456\n
Run Code Online (Sandbox Code Playgroud)\n\n

hello命令将有一个参数123456

\n\n

分解整条线:

\n\n

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

\n