如何调试python单击cli应用程序?

vis*_*hal 9 python python-3.x python-click

我使用python中的click库构建了一个cli应用程序.没有关于如何调试命令的文档.

没有单击,它很容易在IDE中调试python文件,但是当我们使用click时,命令需要通过setup.py中的console_scripts设置运行.

Ste*_*uch 12

这没有很好的文档记录,但您可以直接调用命令函数,因此可以在调试器中运行代码:

示例代码:

import click

@click.command()
@click.option('--my_arg', default=1, help='a number')
def my_command(my_arg):
    click.echo("my_arg='%d'" % my_arg)

if __name__ == '__main__':
    my_command(['--my_arg', '3'])
Run Code Online (Sandbox Code Playgroud)

结果:

my_arg='3'
Run Code Online (Sandbox Code Playgroud)


小智 8

我迟到了几年,但以防万一其他人像我一样来这里寻找答案:

使用CliRunner.invoke()调用函数将返回带有“exc_info”属性的“Result”对象。您可以将其提供给traceback.print_exception(),如下所示:

runner = CliRunner()
result = runner.invoke(my_command)
traceback.print_exception(*result.exc_info)
Run Code Online (Sandbox Code Playgroud)