簡體   English   中英

TypeError:“ str”對象無法使用Python Click庫調用

[英]TypeError: 'str' object is not callable using Python Click library

我正在嘗試通過命令行使用Click庫執行Python 3腳本,但似乎它沒有按預期運行。

@click.option('--criteria', default='', type=click.STRING, envvar="CRITERIA")

這是拋出TypeError: 'str' object is not callable的給定行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

這就是問題:

@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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM