Python单击:如何更改全局上下文的'info_name'值

2024-04-27 02:52:43 发布

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

在使用Click进行命令行处理的Python脚本中,我想在全局上下文中更改info_name(以便修改帮助输出)

下面是一个精心设计的最小示例mycmd.py,我尝试使用context_settings

import click

CONTEXT_SETTINGS = dict(info_name="hallo")

@click.command('mycmd', context_settings=CONTEXT_SETTINGS)
@click.pass_context
def click_cli(ctx):
   pass

click_cli()

但是,当我使用python mycmd.py --help运行此脚本时,我得到了回溯:

...
  File ".../click/core.py", line 639, in make_context
    ctx = Context(self, info_name=info_name, parent=parent, **extra)
TypeError: type object got multiple values for keyword argument 'info_name'

所以问题是**extra(这就是上下文设置结束的地方)中的参数不能覆盖硬编码的info_name=info_name参数。我该怎么做


Tags: namepyinfo脚本clisettingscontextpass
1条回答
网友
1楼 · 发布于 2024-04-27 02:52:43

使用cli函数的prog_name参数更改帮助名称(info_name),如下所示:

cli(prog_name='hallo')

测试代码:

import click

@click.command('mycmd')
@click.pass_context
def cli(ctx):
    pass

cli([' help'], prog_name='hallo')

结果:

Usage: hallo [OPTIONS]

Options:
   help  Show this message and exit.

相关问题 更多 >