单击“找不到这样的命令”

2024-04-19 21:51:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试click(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()

我运行如下

^{pr2}$

Tags: no代码命令行sourceclidef错误context
1条回答
网友
1楼 · 发布于 2024-04-19 21:51:34

“abcd”被视为一个单独的命令,因为空间有限(这是shell的一个特性,而不是单击的特性)。在

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

python playclick.py  source "this abcd"

要实际提供abcd参数,您需要调用hello命令–该参数用于该命令:

^{pr2}$

hello命令将有一个参数123456。在

分解整条线:

source this为主cli命令提供source参数。 hello是要运行的命令(请尝试python playclick.py source this,因为没有命令,您将得到一个错误),而{}是该命令名为abcd的参数。在

相关问题 更多 >