Visual Studio Code Python调试超时。

5

我正在遵循微软的指南在VS Code中开始使用Python,但只能在调试模式下运行一次 - 接下来的运行将总是遇到超时问题。

这是 hello.py

msg = "Hello World"
print(msg)

这是launch.json文件,基本上只添加了"stopOnEntry": true,因此在调试时会停留在第一行代码处。
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [        
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "stopOnEntry": true
        }
    ]
}

我的第一轮调试工作已经完成,Visual Studio Code中的终端显示:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Playground\vscode\py\ms>c:/Playground/vscode/py/ms/env/Scripts/activate.bat
(env) C:\Playground\vscode\py\ms>cd c:\Playground\vscode\py\ms && cmd /C "set "PYTHONIOENCODING=UTF-8" && set "PYTHONUNBUFFERED=1" && c:\Playground\vscode\py\ms\env\Scripts\python.exe c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\ptvsd_launcher.py --default --client --host localhost --port 58792 c:\Playground\vscode\py\ms\hello.py "
Hello World

然而,如果我再次点击“调试”按钮,它就会卡住,并显示一个错误对话框:
[Window Title]
Visual Studio Code

[Content]
timeout

[Open launch.json] [Cancel]

在vscode中,终端显示如下:

(env) C:\Playground\vscode\py\ms>cd c:\Playground\vscode\py\ms && cmd /C "set "PYTHONIOENCODING=UTF-8" && set "PYTHONUNBUFFERED=1" && c:\Playground\vscode\py\ms\env\Scripts\python.exe c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\ptvsd_launcher.py --default --client --host localhost --port 58798 c:\Playground\vscode\py\ms\hello.py "
E00001.107: Exception escaped from start_client

            Traceback (most recent call last):
              File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\log.py", line 110, in g
                return f(*args, **kwargs)
              File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\pydevd_hooks.py", line 74, in start_client
                sock, start_session = daemon.start_client((host, port))
              File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\daemon.py", line 217, in start_client
                connect(client, addr)
              File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\socket.py", line 197, in connect
                sock.connect(addr)
            ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it


Traceback (most recent call last):
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\ptvsd_launcher.py", line 43, in <module>
    main(ptvsdArgs)
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\__main__.py", line 434, in main
    run()
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\__main__.py", line 296, in run_file
    setup_connection()
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\__main__.py", line 287, in setup_connection
    daemon = ptvsd._remote.attach(addr)
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\_remote.py", line 91, in attach
    patch_multiprocessing=ptvsd.options.multiprocess)
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\_vendored\pydevd\pydevd.py", line 2017, in settrace
    wait_for_ready_to_run,
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\_vendored\pydevd\pydevd.py", line 2068, in _locked_settrace
    debugger.connect(host, port)  # Note: connect can raise error.
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\_vendored\pydevd\pydevd.py", line 914, in connect
    s = start_client(host, port)
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\pydevd_hooks.py", line 132, in <lambda>
    _start_client = (lambda h, p: start_client(daemon, h, p))
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\log.py", line 110, in g
    return f(*args, **kwargs)
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\pydevd_hooks.py", line 74, in start_client
    sock, start_session = daemon.start_client((host, port))
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\daemon.py", line 217, in start_client
    connect(client, addr)
  File "c:\Users\drlren\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\lib\python\ptvsd\socket.py", line 197, in connect
    sock.connect(addr)
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

发生了什么? 我该如何解决它?
2个回答

4

我通过将终端从“bash”更改为“命令提示符”(cmd)来解决了这个问题。


1
那怎么做呢? - Jdeep
当您打开终端控制台时,右上角会出现一个下拉列表,其中列出了您可用的不同终端选项。 - tavito

1

我在使用微软新安装的Python扩展程序时,也遇到了VS Code的超时问题。我的解决方法是安装插件后立即尝试调试文件,但结果却出现了ConnectionRefusedError

要解决这个问题,我只需要简单地重新启动VS Code即可。


1
请定义Python插件,因为有几个选项可用。 - daniboy000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接