可以在脚本中禁用 python breakpoint()(使用 VSCode 调试器)吗?
Can python breakpoint() be disabled in a script (with VSCode debugger)?
我正在尝试使用新的 (python 3.7+) breakpoint()
。在初始开发期间,我希望能够禁用脚本中的所有断点。这可能吗?
我尝试在脚本顶部将 PYTHONBREAKPOINT 环境变量设置为 0,但调试器仍然在每一个处停止。环境变量是否必须在脚本初始化之前设置?还是需要设置为其他值?
我正在使用 VSCode 调试器,在虚拟环境中工作,在 windows 10.
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 特定于调试器的。接受的答案对我有用,但意味着不能使用不同的开发和生产环境来抑制断点,必须改为更改代码。
你可以只设置sys.breakpointhook
,执行breakpoint()
时调用的函数:
import sys
sys.breakpointhook = lambda *x: None # function that does nothing
a = 1
breakpoint()
b = 2
我正在尝试使用新的 (python 3.7+) breakpoint()
。在初始开发期间,我希望能够禁用脚本中的所有断点。这可能吗?
我尝试在脚本顶部将 PYTHONBREAKPOINT 环境变量设置为 0,但调试器仍然在每一个处停止。环境变量是否必须在脚本初始化之前设置?还是需要设置为其他值?
我正在使用 VSCode 调试器,在虚拟环境中工作,在 windows 10.
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 特定于调试器的。接受的答案对我有用,但意味着不能使用不同的开发和生产环境来抑制断点,必须改为更改代码。
你可以只设置sys.breakpointhook
,执行breakpoint()
时调用的函数:
import sys
sys.breakpointhook = lambda *x: None # function that does nothing
a = 1
breakpoint()
b = 2