如何使用python单击实现--version?

won*_*ton 12 python command-line-arguments python-click

我想mycommand --version使用 python click来实现。我有这样的工作,但感觉有点笨重。

@click.group(invoke_without_command=True, no_args_is_help=True)
@click.pass_context
@click.option('--version', 'version')
def cli(ctx, version):
    if version:
        ctx.echo(f'{sys.argv[0]} {__version__}')
        ctx.exit()
Run Code Online (Sandbox Code Playgroud)

won*_*ton 26

事实证明,click有一个内置的装饰器click.version_option来完成这个。代码现在变成:

@click.group()
@click.version_option(__version__)
@click.pass_context
def cli(ctx):
    pass
Run Code Online (Sandbox Code Playgroud)

  • 谢谢; 这里还有一个指向文档的链接,以获取有关“click.version_option”的更多信息:https://click.palletsprojects.com/en/7.x/api/?highlight=version_option#click.version_option (3认同)