TypeError:使用Python Click库无法调用'str'对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeError:使用Python Click库无法调用'str'对象相关的知识,希望对你有一定的参考价值。
我正在尝试通过命令行使用Click库执行Python 3脚本,但似乎它不能正常工作。
@click.option('--criteria', default='', type=click.STRING, envvar="CRITERIA")
这是抛出TypeError: 'str' object is not callable
的给定线。我应该做其他事情还是语法问题?
UPDATE
在上面的几个地方改变了criteria
选项的位置后,现在我看到前面提到的错误在最后放置的选项中给出,无论类型如何。这是我的方法签名和使用参数的位置。
@click.command('my_command', 'Initialize my_command')
@click.option('--s1', type=click.STRING, envvar='S_1',
help='s1')
@click.option('--s2', type=click.STRING, envvar='S_2',
help='s2')
@click.option('--i', type=click.STRING, envvar="I")
@click.option('--c', type=click.STRING, envvar="C")
@click.option('--l', default='[]', type=click.STRING, envvar="L")
@click.option('--st', default='[]', type=click.STRING, envvar="ST")
@click.option('--s', default='[]', type=click.STRING, envvar="S")
def my_command(s1, s2, i, c, l, st, s):
...
追溯
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/project_root/__main__.py", line 27, in <module>
@click.command('my_command', 'Initialize my_command')
File "/project_root/venv/lib/python3.6/site-packages/click/decorators.py", line 115, in decorator
cmd = _make_command(f, name, attrs, cls)
File "/project_root/venv/lib/python3.6/site-packages/click/decorators.py", line 89, in _make_command
callback=f, params=params, **attrs)
TypeError: 'str' object is not callable
这就是问题:
@click.command('my_command', 'Initialize my_command')
这是click.command
的签名:
click.command(name=None, cls=None, **attrs)
name
默认为函数名称。所以不需要使用它因为你只是使用函数名。您使用字符串作为cls
,默认为click.Command
。
所以就像这样使用它:
@click.command(help='Initialize my_command')
以上是关于TypeError:使用Python Click库无法调用'str'对象的主要内容,如果未能解决你的问题,请参考以下文章
Webdriverio TypeError:element.click 不是函数
TypeError Ajax Post - Flask Python [重复]
python pandas dataframe index,错误TypeError:输入必须是可迭代的,pandas版本可能错误
Python2.7 在使用BSTestRunner.py时报错TypeError: unicode argument expected, got 'str'