Visual Studio Code Python Timeout ожидает подключения отладчика

Я запускаю учебник по коду Visual Studio с Python и не могу подключиться к отладчику. Когда я ищу, Google / SO оказывается пустым. Обычно я использую Anaconda с Jupyter, поэтому я подключаю Visual Studio Code к питону в моей активированной виртуальной среде 3.6. Я попытался установить ptvsd в моей виртуальной среде, но это не повлияло на то, что я вижу.

Буду рад любым предложениям. Скриншоты включены ниже. launch.json на нижнем скриншоте

Visual Studio Code Python Timeout ожидает подключения отладчикаVisual Studio Code Python Timeout ожидает подключения отладчика

Думаю, у вас опечатка в launch.json; заметили красную волнистую линию? Я думаю, вам нужна запятая после строки "console".

Brett Cannon 24.09.2018 21:47

Привет, @Brett Cannon, спасибо, что взглянули на это. Я добавил запятую, чтобы избавиться от волнистости. Однако это не изменило поведение тайм-аута, отладочное соединение по-прежнему не установлено и продолжает истекать тайм-аут.

bearcat 26.09.2018 07:33

На этом этапе вам, вероятно, нужно открыть вопрос на github.com/microsoft/vscode-python, чтобы выяснить, что происходит. Пожалуйста, заполните шаблон проблемы, когда вы это сделаете, и, если вы можете, предоставьте образец кода, который может воспроизвести проблему.

Brett Cannon 27.09.2018 21:28

Я должен был обновить это некоторое время назад. Я считаю, что это произошло, потому что я был на Conda 2x. Я обновился до Conda 3x, и с тех пор отладчик работает.

bearcat 18.05.2020 01:17
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
31
4
36 383
9

Ответы 9

Сегодня у меня была такая же проблема. Я думаю, что это может быть проблема с подключением, когда отладчик пытается подключиться к интегрированному терминалу PowerShell внутри Visual Studio. Если я перейду на использование внешнего терминала для запуска программы, тогда она будет работать нормально, а отладчик подключается к внешнему терминалу, и я могу отлично отлаживать. Это моя запись для запуска внешнего терминала в launch.json

{
    "name": "Python: Terminal (external)",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "externalTerminal"
},

Спасибо BBM - это полезно знать, но все еще нет связи. Я открыл проблему на GitHub, и по этой проблеме есть длинная строка. Думаю, мне нужна эта ветка, чтобы успокоиться, а потом посмотреть, что делать. Основываясь на комментариях, я подозреваю, что моя базовая установка Anaconda 2.x, но не подтверждена.

bearcat 14.10.2018 03:27

Откройте файл launch.json и добавьте следующую конфигурацию:

{
     "name": "Python: Debug Console",
     "type": "python",
     "request": "launch",
     "program": "${file}",
     "console": "internalConsole"
}

Когда вы указываете noneinternalConsole для консоли, отладчик запускается в консоли отладчика, а не во внутреннем или внешнем терминале.

Это сработало @Lucas Rath; Единственное, что отладчик кода VS - это немного невыразительный, то есть не настолько интуитивно понятный для использования после запуска, но я полагаю, что это вопрос знакомства с ним. Спасибо!

Orco 29.12.2018 16:47

По состоянию на июль 2019 года «none» не является допустимым вариантом для консоли. Вместо этого используйте ... "console": "internalConsole"

Derek Evermore 02.07.2019 18:08

привет @DerekEvermore встретил ту же проблему. Вы уже догадались?

Franva 28.08.2019 16:22

@Franva - Добавление "console": "internalConsole" в launch.json устранило эту проблему для меня.

Derek Evermore 10.09.2019 19:22

Это также устранило мою проблему.

Lou 30.09.2020 17:15

Сегодня у меня была такая же проблема. Причина заключалась в том, что настройки отладки были изменены на «Текущий файл (интегрированный терминал)». Возврат к «Консоли отладки» устранил проблему для меня.

You can find the settings in the drop-down menu right next to the debug button

Измените встроенную оболочку терминала на cmd.exe. Это позволит стандартному launch.json выполнять отладку с опцией Current File (Integrated Terminal).

Это изменение устранило другие ошибки в моей интеграции Visual Studio Code + Python, такие как двойной вызов Run Python File in Terminal, который часто требовался. Это было хорошее предложение из внутреннего диалога версии 1.28.2.

У меня была такая же проблема, поэтому я добавил следующую строку в settings.json файл:

{
    // to fix 'Timeout waiting for debugger connections'
    "python.terminal.activateEnvironment": false
}

У меня такая же проблема с vscode 1.31.1 на Ubuntu 18 с pipenv, это решает мою проблему.

ksopyla 13.02.2019 10:21

Также решает проблему отладки Python с помощью vscode 1.31 на Debian stretch. Нажатие F5 по-прежнему запускает приложение с использованием интерпретатора python из виртуальной среды, так что снова вернемся к счастливой отладке.

Julian Suggate 14.02.2019 02:23

Я была такая же проблема. исправлено с помощью "IntegratedTerminal" .
ps моя система win7

{
            "name": "Debug",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/main.Py",
            "console": "integratedTerminal"
}

Спасибо! Расширение Python не может запускать конфигурацию повторно в том же терминале без этой строки, начиная с v2019.09: «Тайм-аут ожидания подключения отладчика». Мне приходилось закрывать окно терминала после каждого запуска. (Windows 7)

Winand 11.10.2019 07:48

Я попал сюда с помощью WSL.

Я попытался перезапустить сеанс отладки, и код vs просто вернулся к приглашению. Когда я снова запустил отладку, время ожидания истекло из-за ошибки OP.

Решение заключалось в том, чтобы убить предыдущий сеанс отладки в WSL bash (или vs code bash, если на то пошло), один лайнер:

sudo kill -9 `ps ax | grep python | grep 5678 | cut -d' ' -f1`

Отладка должна снова заработать.

Я думаю, что это будет работать нормально, я попробовал:

"configurations": [
    {
        "name": "Python: Debug Console",
        "type": "python",
        "request": "launch",
        "program": "${file}",
        "console": "integratedTerminal"
    }
  ]
}

Добавьте cmd в переменные среды

Это помогло мне решить проблему.

Вам нужно добавить следующий путь к пути к системным переменным.

%SystemRoot%\system32

Удачи, надеюсь, проблема решена.

Другие вопросы по теме