gpt4 book ai didi

python - 为什么我使用 click.argument 会产生 "got an unexpected keyword argument ' 帮助?

转载 作者:太空狗 更新时间:2023-10-29 17:02:44 26 4
gpt4 key购买 nike

运行以下代码会导致此错误:

TypeError: init() got an unexpected keyword argument 'help'

代码:

import click

@click.command()
@click.argument('command', required=1, help="start|stop|restart")
@click.option('--debug/--no-debug', default=False, help="Run in foreground")
def main(command, debug):
print (command)
print (debug)

if __name__ == '__main__':
main()

完整的错误输出:

$ python3 foo.py start
Traceback (most recent call last):
File "foo.py", line 5, in <module>
@click.option('--debug/--no-debug', default=False, help="Run in foreground")
File "/home/cbetti/python/lib/python3/dist-packages/click-4.0-py3.4.egg/click/decorators.py", line 148, in decorator
_param_memo(f, ArgumentClass(param_decls, **attrs))
File "/home/cbetti/python/lib/python3/dist-packages/click-4.0-py3.4.egg/click/core.py", line 1618, in __init__
Parameter.__init__(self, param_decls, required=required, **attrs)
TypeError: __init__() got an unexpected keyword argument 'help'

为什么会出现这个错误?

最佳答案

我一次又一次地遇到这个问题,因为跟踪输出与导致错误的参数不对应。注意跟踪中的 ArgumentClass,这是您的提示。

'help' 是 @click.option 可接受的参数。但是,点击库更喜欢您记录自己的论点。 @click.argument help 参数导致此异常。

此代码有效:(注意 @click.argument 中缺少 , help="start|stop|restart")

import click

@click.command()
@click.argument('command', required=1)
@click.option('--debug/--no-debug', default=False, help="Run in foreground")
def main(command, debug):
""" COMMAND: start|stop|restart """
print (command)
print (debug)

if __name__ == '__main__':
main()

输出:

$ python3 foo.py start
start
False

帮助输出:

Usage: test.py [OPTIONS] COMMAND

COMMAND: start|stop|restart

Options:
--debug / --no-debug Run in foreground
--help Show this message and exit.

关于python - 为什么我使用 click.argument 会产生 "got an unexpected keyword argument ' 帮助?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31173308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com