linux - vscode python调试器不工作: connection refused

标签 linux visual-studio-code centos

每当我尝试调试 python 代码时,vscode 都会出错并通知我调试器的连接被拒绝。我在底部附加了完整的堆栈跟踪

我在 CentOS8 Linux 上。

到目前为止,我已经尝试过:

  • SELinux 已关闭
  • 防火墙被禁用
  • 卸载 vscode
  • 删除/home/user/.vscode
  • 删除/home/user/.config/代码
  • 清除环境变量

  • 并不是真的想知道这里可能会受到什么干扰。

    我正在调试的文件是print('test')保存为 test.py :-)
    /usr/bin/python /home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/ptvsd_launcher.py --default --client --host localhost --port 43259 /scratch/user/tmp/test.py 
    E00000.119: Exception escaped from start_client
    
                Traceback (most recent call last):
                  File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/log.py", line 110, in g
                    return f(*args, **kwargs)
                  File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/pydevd_hooks.py", line 74, in start_client
                    sock, start_session = daemon.start_client((host, port))
                  File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/daemon.py", line 217, in start_client
                    connect(client, addr)
                  File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/socket.py", line 197, in connect
                    sock.connect(addr)
                ConnectionRefusedError: [Errno 111] Connection refused
    
    
    Traceback (most recent call last):
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/ptvsd_launcher.py", line 43, in <module>
        main(ptvsdArgs)
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/__main__.py", line 432, in main
        run()
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/__main__.py", line 300, in run_file
        setup_connection()
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/__main__.py", line 291, in setup_connection
        daemon = ptvsd._remote.attach(addr)
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/_remote.py", line 95, in attach
        patch_multiprocessing=ptvsd.options.multiprocess)
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/_vendored/pydevd/pydevd.py", line 2179, in settrace
        wait_for_ready_to_run,
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/_vendored/pydevd/pydevd.py", line 2230, in _locked_settrace
        debugger.connect(host, port)  # Note: connect can raise error.
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/_vendored/pydevd/pydevd.py", line 1060, in connect
        s = start_client(host, port)
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/pydevd_hooks.py", line 136, in _start_client
        return start_client(daemon, h, p)
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/log.py", line 110, in g
        return f(*args, **kwargs)
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/pydevd_hooks.py", line 74, in start_client
        sock, start_session = daemon.start_client((host, port))
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/daemon.py", line 217, in start_client
        connect(client, addr)
      File "/home/user/.vscode/extensions/ms-python.python-2020.1.58038/pythonFiles/lib/python/old_ptvsd/ptvsd/socket.py", line 197, in connect
        sock.connect(addr)
    ConnectionRefusedError: [Errno 111] Connection refused
    dmaarten
    

    最佳答案

    我也有同样的问题。经过长时间的研究,我找到了我的问题的原因:

  • 我的/etc/hosts 文件中的 localhost 不是 127.0.0.1
  • 因此,DebugAdapter 没有监听地址 127.0.0.1
  • 因此,“ptvsd --client --host localhost”无法连接到DebugAdapter

  • 解决方案:

    在 lanuch.json 中将主机定义为 127.0.0.1
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python: Current File",
                "type": "python",
                "request": "launch",
                "program": "${file}",
                "console": "integratedTerminal",
                "host": "127.0.0.1"
            }
        ]
    }
    

    关于linux - vscode python调试器不工作: connection refused,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60095537/

    相关文章:

    macos - 在OSX El Capitan中Visual Studio Code安装失败

    apache - Liferay 80端口转发

    C Makefile - 如何在构建时添加头文件(linux 内核)?

    linux - 如何在 Linux 上安装 Visual Studio Code?

    visual-studio-code - 如何使 Windows Powershell (5.1) 成为 VSCode 项目中的默认集成终端?

    jenkins - 无法访问 SonarQube 服务器页面

    shell - tar:存档中出现意外的 EOF

    linux - Linux内核的自定义网络协议(protocol)

    linux - 无法从 USB 驱动器下载驱动程序

    linux - 如何停止使用点(.)列出文件夹的查找命令