You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用debugpy远程调试时,如何将本地外部终端设为调试控制台?

实现本地外部终端作为远程Python调试的控制台

方法1:SSH伪终端转发 + debugpy附加调试

这是最可靠的方案,直接让远程脚本的控制台绑定到本地SSH终端:

  1. 本地打开外部终端,通过SSH连接远程机器并分配伪终端
    执行命令:

    ssh -t your_username@remote_host_ip "cd /path/to/your/project && python -m debugpy --listen 127.0.0.1:5678 --wait-for-client your_script.py"
    

    -t 参数强制SSH分配伪终端,确保远程脚本的stdin/stdout/stderr直接映射到当前本地终端。

  2. 在VSCode中配置附加调试
    修改.vscode/launch.json,添加如下配置:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Remote Attach with Local Console",
                "type": "python",
                "request": "attach",
                "connect": {
                    "host": "remote_host_ip",
                    "port": 5678
                },
                "justMyCode": false,
                "redirectOutput": false  // 关闭VSCode内部输出转发,让控制台完全在本地SSH终端
            }
        ]
    }
    
  3. 启动调试
    在VSCode中选择上述配置并启动调试,此时远程脚本会开始运行,所有控制台输入输出都会在你之前打开的本地外部终端中进行,VSCode则负责断点、变量查看等调试功能。

方法2:配置debugpy输出转发到VSCode外部终端

如果不想手动开SSH终端,可通过debugpy的输出转发配合VSCode的外部终端设置:

  1. 远程启动debugpy时启用输出重定向
    远程机器上运行:

    python -m debugpy --listen 0.0.0.0:5678 --wait-for-client --redirect-output your_script.py
    

    --redirect-output 会让debugpy把远程脚本的stdout/stderr转发到调试客户端(VSCode)。

  2. VSCode launch.json配置外部终端
    修改配置如下:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Remote Debug to External Terminal",
                "type": "python",
                "request": "attach",
                "connect": {
                    "host": "remote_host_ip",
                    "port": 5678
                },
                "console": "externalTerminal",
                "redirectOutput": true,
                "justMyCode": false
            }
        ]
    }
    

    启动调试后,VSCode会打开本地外部终端转发远程脚本的输出,不过这种方式的交互式输入兼容性不如方法1,建议优先用伪终端方案。

关键注意事项

  • 确保远程机器的指定端口(比如5678)对本地开放,也可通过SSH端口转发映射到本地:ssh -L 5678:127.0.0.1:5678 your_username@remote_host_ip,此时VSCode的attach host填localhost即可。
  • 不要同时启用VSCode内部终端和外部终端转发,避免输出混乱。
  • 脚本需要交互式输入时,方法1的SSH伪终端方式稳定性更好。

内容的提问来源于stack exchange,提问作者Jon Cohen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:39:53