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)
由于空格,“abcd”被视为一个单独的命令(这是 shell 的特征,而不是专门针对单击的特征)。
\n\n如果您希望 的值为source“this abcd”,请使用引号:
python playclick.py --source "this abcd"\nRun Code Online (Sandbox Code Playgroud)\n\n要实际提供abcd参数,您需要调用hello命令 \xe2\x80\x93 参数适用于该命令:
python playclick.py --source this hello 123456\nRun Code Online (Sandbox Code Playgroud)\n\n该hello命令将有一个参数123456。
分解整条线:
\n\n--source thissource为主命令提供参数cli。\nhello是要运行的命令(尝试python playclick.py --source this 一下,您会得到一个错误,因为没有命令),并且是为该命令123456命名的参数。abcd