You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Python click.version_option添加-V别名选项?

给Click的版本选项添加短选项名(-V)

问题

现有代码可通过命令 py main.py --version 打印库版本:

import click

version = "1.0.0"

@click.version_option(version=version)
def main():
    pass

if __name__ == "__main__":
    main()

想要为版本选项添加-V短选项,但尝试直接传入多个选项名的写法均报错无效:

@click.version_option(version=version, "--version", "-V")
@click.version_option("--version", "-V", version=version)

也未找到类似click.Context.help_option_names的全局配置方式。

解决方法

方法1:通过param_decls传递选项名元组

click.version_option的第一个参数是param_decls,用于定义选项的名称,将--version和-V放在元组中作为第一个参数传入即可:

import click

version = "1.0.0"

@click.version_option(("--version", "-V"), version=version)
def main():
    pass

if __name__ == "__main__":
    main()

此时运行py main.py -V或py main.py --version都能正常打印版本信息。

方法2:全局配置版本选项名(Click 8.x及以上)

如果需要全局统一配置所有命令的版本选项名,可以通过修改上下文的version_option_names属性实现:

import click

version = "1.0.0"

@click.group()
@click.pass_context
def main(ctx):
    # 全局设置版本选项的名称
    ctx.version_option_names = ["--version", "-V"]

@main.command()
@click.version_option(version=version)
def my_command():
    pass

if __name__ == "__main__":
    main()

内容的提问来源于stack exchange,提问作者avocado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:50:33