python-click 使用 intellij 是否可以进行调试?

Is debugging possible with python-click using intellij?

这似乎是 python-click 的一个普遍问题,但是 google 上没有任何地方提到它。

如果我尝试 运行 即使是最简单的 python 点击脚本,如下所示 realpython

import click

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


@greet.command()
def hello(**kwargs):
    pass


@greet.command()
def goodbye(**kwargs):
    pass

if __name__ == '__main__':
    greet()

Intellij 调试器完全用错误消息轰炸:

Error: no such option: --multiproc

我已经用多个 python-click 脚本尝试过这个,但调试从来没有成功。有没有其他人注意到这一点,有什么办法解决这个问题吗?

当您没有将任何参数传递给点击入口点时,就会出现问题。在这种情况下,click 会询问特定于平台的函数来获取它的参数 get_os_args(),这与 sys.argv.

无关

结果效果是调试器需要的参数也传递给了点击解析器,有效地激活了点击错误。

解决方案是明确地将 sys.argv[1:] 传递给点击入口点,这将覆盖默认的 get_os_args() 行为:

import sys
if __name__ == '__main__':
    greet(sys.argv[1:])