VS Code начинает отладку во встроенном терминале вместо отладочной консоли
Я уже давно пользуюсь VS Code, и только сегодня у меня появилась эта странная проблема. Ранее, если бы я начал отладку программы (F5), она начинала бы отлаживать и показывать вывод в "консоли отладки":
![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 для обновления документации здесь.