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:])
这似乎是 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:])