我正在尝试使用新的(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调试器的。接受的答案对我有用,但是意味着不能使用不同的开发环境和生产环境来抑制断点,而必须更改代码。
答案 0 :(得分:1)
您可以仅设置sys.breakpointhook
,该函数在执行breakpoint()
时会被调用:
import sys
sys.breakpointhook = lambda *x: None # function that does nothing
a = 1
breakpoint()
b = 2