【发布时间】:2017-12-19 11:56:24
【问题描述】:
我正在尝试使用 Click 库通过命令行执行 Python 3 脚本,但它似乎无法正常工作。
@click.option('--criteria', default='', type=click.STRING, envvar="CRITERIA")
这是抛出TypeError: 'str' object is not callable 的给定行。我应该做其他事情还是语法问题?
更新
更改了上面几个位置的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
【问题讨论】:
-
显示完整的代码和完整的回溯。
-
能否再提供一些周边代码。
-
@DanielRoseman 抱歉耽搁了。像我一直在检查的那样检查更新,即使我只是离开 click.command 注释,“选项”堆栈中的最后一个选项也会重复错误。
-
什么时候出现这个错误?您是如何尝试运行脚本以及使用哪些命令行选项的?
标签: python python-3.x command-line-interface python-click