我遇到了命令组的问题。我一直关注this guide。
#!/usr/bin/env python
import click
@click.group()
@click.option("--template-id", prompt="Template ID", help="The template to use.")
@click.option("--lang", prompt="Langcode", help="The language to use.")
def cli(template_id, lang):
pass
@cli.command()
@click.argument('template-id')
@click.argument('lang')
def upload_translations(template_id, lang):
pass
if __name__ == "__main__":
cli()
运行它会导致问题:
» ~/cli.py upload_translations --template-id=xxxxx --lang=ja
Template ID: sdf
Langcode: asdf
Error: no such option: --template-id
no such option: --template-id
?答案 0 :(得分:1)
--template-id
选项不是upload_translations
命令的选项;它是基础cli
的一个选项。所以你会这样称呼:
./cli.py --template-id=xxxxxx --lang=ja upload_translations ...
此外,您在--lang
和cli
上都有upload_translations
选项。这意味着这也是有效的:
./cli.py --template-id=xxxxxx upload_translations --lang=ja ...
这有点令人困惑;你可能想要从一个或另一个中移除--lang
选项,或者如果它们实际上不是同一个东西,则在这两个命令之一中给它一个不同的名称。