首页 > 解决方案 > 单击模块忽略子组命令

问题描述

尝试实现来自palletsprojects 网站的示例: https ://click.palletsprojects.com/en/7.x/commands/

imoport click

@click.group()
@click.option('--debug/--no-debug', default=False)
def cli(debug):
    click.echo('Debug mode is %s' % ('on' if debug else 'off'))

@cli.command()  # @cli, not @click!
def sync():
    click.echo('Syncing')

以下行在我的终端中不产生任何输出:

python cli_test.py cli
python cli_test.py sync
python cli_test.py

当我希望为第二行打印“同步”时。

标签: pythoncommand-line-interfacepython-click

解决方案


您(大概从我对库的理解)应该在设置命令和组后调用主命令。将此附加到您的代码中:

if __name__ == '__main__':
    cli()

并且python cli_test.py sync应该反过来调用sync命令。


推荐阅读