Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python单击:如何更改全局上下文的'info_name'值_Python_Python 3.x_Parameter Passing_Command Line Interface_Python Click - Fatal编程技术网

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

Python单击:如何更改全局上下文的'info_name'值,python,python-3.x,parameter-passing,command-line-interface,python-click,Python,Python 3.x,Parameter Passing,Command Line Interface,Python Click,在使用Click进行命令行处理的Python脚本中,我想在全局上下文中更改info\u名称(以便修改帮助输出) 下面是一个精心设计的最小示例mycmd.py,我尝试使用context\u设置: import click CONTEXT_SETTINGS = dict(info_name="hallo") @click.command('mycmd', context_settings=CONTEXT_SETTINGS) @click.pass_context def click_cli(ct

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

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

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\u name=info\u name
参数。如何执行此操作?

使用cli函数的
prog\u name
参数,更改帮助名称(
info\u 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.