Я довольно давно использую VS Code, и только сегодня у меня возникла эта странная проблема. Раньше, если я начинал отладку программы (F5), она начинала отладку и показывала вывод в «Консоли отладки»:
Но теперь запускает отладчик в "Терминале"
а также выводит в «Консоль отладки».
Вот мой launch.json:
{
"version": "0.2.0",
"configurations": [{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}"
}
]
}
Я хочу выводить Только в «Консоль отладки» (ранее поведение по умолчанию). Пожалуйста, помогите мне вернуть все как было.






Как и в случае с выпуск 2019.4.0 расширения python, теперь можно установить для параметра console значение internalConsole (# 4321).
В .vscode/launch.json:
"console": "internalConsole"
Как предлагается в ответ omartin2010, вы можете дополнительно установить параметр
"internalConsoleOptions": "openOnSessionStart"
для автоматического открытия консоли отладки при запуске отладки.
Явная установка опции "приставка" на "none" изначально была подходящим вариантом (см. Ответы), но теперь «none» больше не действует (см. Edit 3 выше)
"console": "none"
Чтобы гарантировать, что вывод записывается в консоль отладки, вы можете установить debugOptions.
Добавление следующей записи в вашу конфигурацию на вашем launch.json должно исправить это:
"debugOptions": [
"RedirectOutput"
]
Тогда, возможно, явно поможет установка параметра приставка. Попробуйте установить "console": "integratedTerminal":
Если в конечном итоге вам понадобится терминал, это будет более проблематично. Было бы проще добавить новую конфигурацию без
У меня была такая же проблема, но я решил ее, добавив новую конфигурацию вверху, которая выглядела так:
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "internalConsle"
},
Я нашел это лучшее решение, потому что мне не пришлось менять одну из других моих функций отладки. В вашем случае вариант отладки «Python: Терминал (интегрированный)». Что мне нужно столько же, сколько мне нужна функция консоли отладки. Я использую обе функции, и они показывают результат там, где я хочу, чтобы он был показан.
Теперь при желании я получаю вывод только в консоли отладки, однако как мне заставить консоль отладки автоматически запускаться, когда я начинаю отладку?
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"stopOnEntry": false,
"console": "none"
},
это мои настройки launch.json, и он работает с этим.
По сути, тот же ответ, что и @SnitchingAuggie, за исключением атрибута stopOnEntry. Пожалуйста, объясните, почему это важно.
Также возможно, как я полагаю не так давно, добавить эту опцию ... не уверен, что это было возможно раньше:
{
...
"internalConsoleOptions": "openOnSessionStart",
...
}
надеюсь это поможет
Принятый ответ не сработал для меня, поскольку он не подходит для моей версии 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. I 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"
},
...
Вопрос OP относится к отладке питон, а не nodejs
Тип проекта в данном случае не имеет значения. Это проблема с настройкой IDE в целом и применима к любому типу проекта, выводимому на печать в консоли отладки. Я понимаю, что это может сбить с толку, если вы скопируете и вставите мою полную конфигурацию, поэтому я обновлю свой ответ.
Первоначально приведенная ниже конфигурация работала, но, похоже, она устарела и теперь выдает ошибку:
"console": "none"
Новое использование:
"console": "internalConsole"
В GitHub зарегистрирована ошибка для обновления документов здесь.
Он уже делает это. Но он печатает на обоих терминалах, а также, когда я начинаю отладку, он переходит на терминал вместо консоли отладки.