Python click lib是否提供打印内置帮助消息的方法?

Python click lib是否提供打印内置帮助消息的方法?,python,python-click,Python,Python Click,我正在使用单击库 在我的代码中,有时我想打印帮助消息, 但我知道的唯一方法是: python xxx --help 但是我想使用某个函数打印代码中的帮助消息,例如: click.print_help_msg() 有这样的函数吗?我在click的文档中修改了示例并提出了这个,但是我以前没有使用过它,也没有测试过下面的代码 @click.command() @click.option('--help') def help(): """Simple program that greets

我正在使用
单击

在我的代码中,有时我想打印帮助消息, 但我知道的唯一方法是:

python xxx --help
但是我想使用某个函数打印代码中的帮助消息,例如:

click.print_help_msg()

有这样的函数吗?

我在click的文档中修改了示例并提出了这个,但是我以前没有使用过它,也没有测试过下面的代码

@click.command()
@click.option('--help')
def help():
    """Simple program that greets NAME for a total of COUNT times."""
    for x in range(count):
        click.echo(get_help_message())

def get_help_message():
    return "I AM A HELP MESSAGE!"

类似的东西不起作用吗?

您可以使用
单击。echo
类似的东西:

click.echo('FooBar')
echo
还支持颜色代码和基于类型的过滤,例如:

click.echo('FooBar', err=True)
您可以参考以了解更多信息。

您可以使用命令的方法


在click 5.x中,您现在可以使用
get\u current\u context()
方法:

def print_help():
    ctx = click.get_current_context()
    click.echo(ctx.get_help())
    ctx.exit()
如果您只想打印错误消息并退出,请尝试:

def exit_with_msg():
    ctx = click.get_current_context()
    ctx.fail("Something unexpected happened")

我希望click.echo的输出与“python xxx--help”的输出相同,是否有解决方案?我希望click.echo的输出与“python xxx--help”的输出相同,有什么解决方案吗?遗憾的是,这对我的情况不起作用,我总是得到
AttributeError:'name'对象没有属性'allow_extra_args'
,如果您使用嵌套组,结果是“Usage:[OPTIONS]COMMAND[args]”(即缺少根名称),然后用click.Context调用
(COMMAND,info_name='mycli'))as ctx:
将正确填充名称。如果您想打印
@click.group
的帮助,您可以使用带注释的group方法,而不是
命令
。现在单击7.x,
ctx.exit()
会给出一个
AttributeError
,因为
exit()
已被删除。退出与上下文是隐式的,除非在回调函数中使用它(例如,通过
MyCli.\uu version\uu
打印cli版本)。
def exit_with_msg():
    ctx = click.get_current_context()
    ctx.fail("Something unexpected happened")