可以在脚本中(使用VSCode调试器)禁用python breakpoint()吗?

时间:2019-05-10 11:11:33

标签: python python-3.x vscode-debugger

我正在尝试使用新的(python 3.7+)breakpoint()。在最初的开发过程中,我希望能够禁用脚本中的所有断点。这可能吗?

我尝试在脚本顶部将PYTHONBREAKPOINT环境变量设置为0,但是调试器仍然在每个位置停止。脚本初始化之前是否必须设置env var?还是需要将其设置为其他内容?

我正在Windows 10上的虚拟环境中使用VSCode调试器。

    import os

    os.environ['PYTHONBREAKPOINT'] = "0"

    a = 1

    print(os.environ['PYTHONBREAKPOINT'])  # prints 0
    breakpoint()  # debugger still stops here

    b = 2

编辑:如果我在命令行中使用pdb,则断点将被禁用。这是与VSCode调试器相关的 Edit2:似乎是特定于VSCode调试器的。接受的答案对我有用,但是意味着不能使用不同的开发环境和生产环境来抑制断点,而必须更改代码。

1 个答案:

答案 0 :(得分:1)

您可以仅设置sys.breakpointhook,该函数在执行breakpoint()时会被调用:

import sys

sys.breakpointhook = lambda *x: None  # function that does nothing

a = 1
breakpoint()
b = 2