【问题标题】:Visual Studio Code Python Timeout waiting for debugger connectionVisual Studio Code Python 超时等待调试器连接
【发布时间】:2019-02-26 23:27:43
【问题描述】:

我正在使用 Python 运行 Visual Studio 代码教程,但无法连接到调试器。当我搜索时,Google / SO 出现空缺。通常我将 Anaconda 与 Jupyter 一起使用,因此我在激活的 3.6 虚拟环境中将 Visual Studio Code 连接到 python。我尝试在我的虚拟环境中 pip 安装 ptvsd,但这并没有改变我所看到的。

我欢迎任何建议。截图如下。底部截图中的launch.json

【问题讨论】:

  • 我认为您的launch.json 中有错字;注意到红色曲线了吗?我认为您需要在"console" 行后面加一个逗号。
  • 嗨@Brett Cannon,感谢您查看此内容。我添加了逗号,它消除了波浪线。但它并没有改变超时行为,调试连接仍然没有建立并继续超时。
  • 此时您可能需要在github.com/microsoft/vscode-python 上打开一个问题以了解发生了什么。请填写问题模板,如果可以请提供可以重现问题的示例代码。
  • 我应该前段时间更新这个。我相信这种情况正在发生,因为我使用的是 Conda 2x。我升级到 Conda 3x 并且调试器从那以后就可以工作了。

标签: python debugging visual-studio-code


【解决方案1】:

打开launch.json文件,添加如下配置:

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

当您为控制台指定 none internalConsole 时,它将在调试器控制台中运行调试器,而不是在内部或外部终端中运行。

【讨论】:

  • 这行得通@Lucas Rath;唯一的问题是 VS 代码调试器有点 inexpressive,即一旦它被触发就不是那么直观,但我想这是一个熟悉它的问题。谢谢!
  • 截至 2019 年 7 月,“无”不是控制台的有效选项。而是使用... "console": "internalConsole"
  • 嗨@DerekEvermore 遇到了同样的问题。你想清楚了吗?
  • @Franva - 添加 "console": "internalConsole" 到 launch.json 为我解决了这个问题
  • 这也解决了我的问题。
【解决方案2】:

我遇到了同样的问题,所以我在 settings.json文件:

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

【讨论】:

  • 我在带有 pipenv 的 Ubuntu 18 上的 vscode 1.31.1 上遇到了同样的问题,这解决了我的问题。
  • 还解决了在 Debian stretch 上使用 vscode 1.31 进行 python 调试的问题。按 F5 仍会使用虚拟环境中的 python 解释器启动应用程序,所以再次愉快地调试。
【解决方案3】:

我今天也遇到了同样的问题。我认为当调试器尝试连接到 Visual Studio 中的集成 PowerShell 终端时,可能是连接问题。如果我改为使用外部终端运行程序,那么它可以正常工作,并且调试器连接到外部终端,我可以很好地调试。这是我在launch.json中的外部终端启动条目

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

【讨论】:

  • 感谢 BBM - 很高兴知道这一点,但仍然没有连接。我在 GitHub 上打开了一个问题,关于这个问题有一个很长的字符串。我想我需要那个线程安静下来,然后看看该怎么做。根据那里的 cmets,我怀疑我的 Anaconda 2.x 基础安装,但尚未确认。
【解决方案4】:

我有同样的问题。 通过使用“集成终端”修复。
ps.我的系统win7

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

【讨论】:

  • 谢谢!自 v2019.09 以来,Python 扩展无法在没有此行的情况下重新在同一终端中启动配置:“等待调试器连接超时”。每次运行后我都必须关闭终端窗口。 (Windows7)
【解决方案5】:

我今天遇到了同样的问题。原因是调试设置更改为“当前文件(集成终端)。切换回“调试控制台”为我解决了问题。

【讨论】:

    【解决方案6】:

    将您的集成终端外壳更改为cmd.exe。这将允许默认的launch.json 使用Current File (Integrated Terminal) 选项进行调试。

    此更改修复了我的 Visual Studio Code + Python 集成中的其他错误,例如经常需要对 Run Python File in Terminal 的双重调用。这是一个来自 1.28.2 版内部对话框的好建议。

    【讨论】:

      【解决方案7】:

      我认为这会很好,我试过了:

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

      【讨论】:

        【解决方案8】:

        将 cmd 添加到您的环境变量中

        这帮助我解决了问题。

        您需要将以下路径添加到系统变量路径中。

        %SystemRoot%\system32

        祝你好运,我希望它解决了你的问题。

        【讨论】:

          【解决方案9】:

          我是使用 WSL 来到这里的。

          我尝试重新启动调试会话,而 vs 代码刚刚回到提示符。当我再次运行调试时,它根据 OP 的错误超时。

          解决方案是终止 WSL bash(或与代码 bash 相关的)中的前一个调试会话,一个衬里:

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

          调试应该会再次工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-03-19
            • 1970-01-01
            • 2012-03-31
            • 2020-11-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多