只执行python中嵌套组列表中的最后一个命令单击

2024-10-02 22:34:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一组嵌套很深的命令,如click.group()s。我只想在按下Enter键时执行cli的最后一个组(命令)输入

例如:

cli sub_command subsub_command # < -- should only execute subsub_command

。。。应该只执行最后一个命令subsub_command,但是,似乎单击“希望”以执行完整的命令堆栈。(奇怪的是,它不包括subsub_command):

$ cli sub-command subsub-command 
I am the root_command
I am sub_command
Usage: cli sub-command subsub-command [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

它似乎正在运行除最后一个命令之外的所有命令。为什么它显示subsub_command的帮助而不是简单地执行它

这是我的点击代码:

import os
import sys

import click

@click.group(invoke_without_command=True)
def cli():
    print('I am the root_command')

@cli.group()
def sub_command(invoke_without_command=True):
    print('I am sub_command')

@sub_command.group()
def subsub_command(invoke_without_command=True):
    print('I am the subsub_command')

if __name__ == '__main__':
    cli()

任何想法都是有帮助的。谢谢


Tags: theimport命令trueclidefgrouproot
1条回答
网友
1楼 · 发布于 2024-10-02 22:34:01

这是因为您正在反复使用@cli.group

命令是用@cli.command定义的

例如:

import click


@click.group()
def cli():
    pass


@cli.command(name='hello')
def hello():
    print('hello world!')

@group的思想是将多个命令组合在一起,group方法用于为整个组定义公共上下文代码

相关问题 更多 >