Можно ли отключить точку останова python () в сценарии (с помощью отладчика VSCode)? - PullRequest
1 голос
/ 10 мая 2019

Я пытаюсь использовать новый (python 3.7+) breakpoint(). Во время первоначальной разработки я хочу иметь возможность отключить все точки останова в скрипте. Возможно ли это?

Я попытался установить переменную окружения PYTHONBREAKPOINT в 0 в верхней части скрипта, но отладчик по-прежнему останавливается на каждом из них. Нужно ли задавать env var до инициализации скрипта? или его нужно установить на что-то другое?

Я использую отладчик 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. Принятый ответ работает для меня, но средства не могут использовать разные dev и производственные среды для подавления точек останова, вместо этого нужно изменить код.

1 Ответ

1 голос
/ 10 мая 2019

Вы можете просто установить sys.breakpointhook, функцию, которая вызывается при выполнении breakpoint():

import sys

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

a = 1
breakpoint()
b = 2
...