VS Code начинает отладку во встроенном терминале вместо отладочной консоли

Я уже давно пользуюсь VS Code, и только сегодня у меня появилась эта странная проблема. Ранее, если бы я начал отладку программы (F5), она начинала бы отлаживать и показывать вывод в "консоли отладки":

enter image description here

Но теперь он запускает отладчик в "Терминале" enter image description here, а также выводит в "Debug Console".

Вот мой launch.json:

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


Я хочу вывод только в "консоли отладки" (ранее поведение по умолчанию). Пожалуйста, помогите мне вернуть его обратно в прежнее состояние.

Ответ 1

Редактировать 3

Как и в выпуске 2019.4.0 расширения python, теперь можно установить для параметра console значение internalConsole (# 4321).

Редактировать 2

Как предложено в ответе omartin2010, вы можете дополнительно установить опцию

"internalConsoleOptions": "openOnSessionStart"

автоматически открывать консоль отладки при запуске отладки.

Редактировать 1

Установка опции консоли явно, чтобы none был none способом. Смотрите комментарии.

"console": "none"

Оригинальный ответ

Чтобы гарантировать, что вывод записывается в консоль отладки, вы можете установить debugOptions. Добавление следующей записи в вашу конфигурацию в launch.json должно исправить это:

"debugOptions": [
    "RedirectOutput"
]

Ответ 2

У меня была такая же проблема, но я решил ее, добавив новую конфигурацию вверху, которая выглядела так:

{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "none"
},

Я нашел это лучшим решением, потому что мне не пришлось менять одну из моих других функций отладки. В вашем случае опция отладки "Python: Terminal (интегрированная)". Мне нужно столько, сколько мне нужно для функции консоли отладки. Я использую обе функции, и они показывают вывод, где я хочу, чтобы результат отображался.

Ответ 3

{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "stopOnEntry": false,
    "console": "none"
},

это мои настройки launch.json и это работает с этим.

Ответ 4

Также возможно, как я полагаю, не так давно, добавить эту опцию... не уверен, что это было возможно раньше:

{
...
            "internalConsoleOptions": "openOnSessionStart",
...
}

надеюсь это поможет

Ответ 5

Принятый ответ не сработал для меня, так как он не подходит для моей версии VSCode Version 1.30.2 (1.30.2):

Unknown console type 'none'.

Решение для меня состояло в том, чтобы вместо этого использовать параметр internalConsole. Я полагаю, что это должно быть по умолчанию для опции integratedTerminal терминала в моей версии.

Вот пример:

NOTE: this is an example from my nodejs project but the console portion is still relevant regardless of project type. я have included more to show some context as well as other features such as envFile usage.

...    
{
    "type": "node",
    "request": "launch",
    "name": "Launch Program",
    "envFile": "${workspaceRoot}/.env",
    "program": "${workspaceFolder}/src/index.js",
    "autoAttachChildProcesses": true,
    "console": "internalConsole"
},
...

Ответ 6

Предпочтительный ответ выше настройки

    "console": "none" 

сейчас выдает ошибку.

Новое использование

    "console": "internalConsole"

Здесь есть ошибка в GitHub для обновления документации здесь.