В VSCode отладчик Python запускает новый терминал каждый раз, когда я отлаживаю - PullRequest
0 голосов
/ 02 октября 2019

При отладке в Python, в VS Code он создает новый терминал каждый раз, когда я отлаживаю. Код просто добавляет терминал каждый раз в выпадающий список в окне терминала. Я должен вручную удалить каждый терминал или удалить их через некоторое время - в противном случае он в конечном итоге зависнет.

Есть ли параметр, позволяющий остановить это? Это ожидаемое поведение или дефект?


Обновление: Вот скриншот того, что происходит, когда каждый раз создается новый терминал отладки. Это раскрывающийся список в правой части окна терминала, который вы можете открыть или перейти с помощью ctrl-` (ключ могилы, несмещенная тильда или клавиша ~). Он показывает обычный bash терминал, Python терминал, который повторно используется каждый раз, когда вы запускаете скрипт, но 3 Python Debug Console windows. Новая консоль отладки Python создается каждый раз, когда вы отлаживаете ( F5 ). Поэтому мне нужно заходить и вручную удалять Python Debug Console (нажимать на значок мусорной корзины справа) каждый раз, когда я отлаживаю. Это открывало до 20+ окон терминала, прежде чем я понял, что это происходит.

enter image description here

1 Ответ

0 голосов
/ 02 октября 2019

После некоторых поисков я не могу определить, ожидается ли поведение запуска нового терминала для каждой отладки, но есть обходной путь.

Настройка конфигурации отладки для Python: Текущий файл . На вкладке отладки вверху щелкните значок шестеренки, чтобы открыть launch.json enter image description here

In launch.json ,измените настройку "console" со значения по умолчанию "integratedTerminal" на "internalConsole", как показано ниже:

{   "version": "0.2.0",
    "configurations": [
        {   "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "internalConsole"
        }
    ]
}

Это приведет к тому, что весь вывод любого сеанса отладки будет происходить только в консоли отладки, которая получаеточищает и повторно использует каждый сеанс, а не порождает новый интегрированный терминал каждый сеанс.

...