Python 在其他命令中调用click命令时捕获的输出
我在Python 在其他命令中调用click命令时捕获的输出,python,python-click,Python,Python Click,我在run命令中调用create命令,但无法捕获create的输出结果为无。我错过什么了吗 调用其他命令并捕获其输出的正确方法是什么 @click.command( 'create') @click.pass_context def create(ctx): ... click.echo(click.style(response['name'], fg='green')) return
run
命令中调用create
命令,但无法捕获create
的输出<代码>结果为无。我错过什么了吗
调用其他命令并捕获其输出的正确方法是什么
@click.command(
'create')
@click.pass_context
def create(ctx):
...
click.echo(click.style(response['name'], fg='green'))
return response['name']
@click.command(
'run')
@click.pass_context
def run(ctx):
result = ctx.invoke(create)
单击上下文链接到父上下文,因此我只是向父上下文传递一个值
@click.command('create')
@click.pass_context
def create(ctx):
...
click.echo(click.style(response['name'], fg='green'))
if 'invoked_by_subcommand' in ctx.parent.__dict__:
ctx.parent.return = response['output']
@click.command('run')
@click.pass_context
def run(ctx):
ctx.invoked_by_subcommand = True
result = ctx.invoke(create)
单击命令不会返回。任何“输出”都来自
click.echo()
。我知道,但是click.echo()
之后,会有返回响应['name']
这不是click的工作方式,这些命令不会返回给调用者。堆栈中有异常处理,然后是一个sys.exit()
。否则程序会给出一个正确的退出代码吗?明白了,有没有其他方法可以得到前一个命令的输出?把它传给上下文怎么样?