1

我刚开始使用 python click 模块,我想让它在任何时候单击引发错误时自动调出“--help”功能。

测试.py

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', default=Adam,
              help='The person to great.')
def test(name):
    print name

如果我要从命令行作为 test.py --no_such_thing 运行脚本。有没有办法让 --help 出现而不是正常的:Error no Option --no_such_thing

4

2 回答 2

2

总之,你需要修改方法click.exceptions.UsageError.show但是,我在此 SO 帖子的答案中发布了对这个问题的更深入的答案以及示例代码。

于 2017-05-11T17:33:29.343 回答
0

如果您使用 Click 4.0+,您可以使用Context.ignore_unknown_optionsContext.allow_extra_args禁用未知选项的自动错误处理:

import click

@click.command(context_settings={
    'allow_extra_args': True,
    'ignore_unknown_options': True,
})
@click.pass_context
def hello(ctx):
    if ctx.args:
        print(hello.get_help(ctx))

if __name__ == "__main__":
    hello()

在这种情况下,您的命令将接收列表中的剩余参数ctx.args。缺点是您需要自己处理错误,否则程序将静默失败。

更多信息可以在转发未知选项部分的文档中找到。

于 2016-06-29T02:16:30.013 回答