You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

本地Python代码远程运行与调试的可行性咨询

本地Python代码远程运行与调试的可行性咨询

当然可以实现!你想要本地编辑代码,却借助远程更强大的机器来运行和调试的需求完全能达成,不用把代码拷贝到远程机器上。下面就给你详细拆解基于debugpy的实现方案:

  • 第一步:在远程机器上部署debugpy并启动监听
    先在远程机器上安装debugpy,执行命令:

    pip install debugpy
    

    接着启动debugpy的调试监听服务,让它等待本地调试器的连接:

    python -m debugpy --listen 0.0.0.0:5678 --wait-for-client
    

    这里解释下参数:0.0.0.0允许远程机器接收来自任意IP的连接,5678是监听的端口(你可以改成其他未被占用的端口),--wait-for-client表示会暂停执行,直到本地调试器连接上来再继续。

  • 第二步:配置本地VS Code的调试环境
    打开本地存放代码的VS Code工作区,找到.vscode文件夹(如果没有就新建一个),创建或修改launch.json文件,填入以下配置:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Remote Debug via debugpy",
                "type": "python",
                "request": "attach",
                "connect": {
                    "host": "你的远程机器IP地址",
                    "port": 5678
                },
                "pathMappings": [
                    {
                        "localRoot": "${workspaceFolder}",
                        "remoteRoot": "/tmp/remote-debug-mapping"
                    }
                ],
                "justMyCode": true
            }
        ]
    }
    

    重点说下pathMappings:这里是把本地代码的根目录(${workspaceFolder})映射到远程机器的一个临时路径(比如/tmp/remote-debug-mapping),这个路径不需要真的存在代码文件,只是用来让debugpy建立本地代码和远程执行环境的关联,这样远程机器就能识别本地代码的断点位置了。

  • 第三步:启动调试流程

    1. 确保远程机器上的debugpy监听命令已经在运行
    2. 在本地VS Code的调试面板里,选择刚才配置的Remote Debug via debugpy选项,点击启动按钮
    3. 现在你就可以像本地调试一样操作了:给代码加断点、单步执行、查看变量,所有的运行逻辑都是在远程机器上完成的,而你编辑的本地代码会实时通过调试通道传递给远程执行,完全不需要把代码拷贝到远程机器。
  • 额外的安全小技巧
    如果不想直接开放远程机器的5678端口给外部网络,可以用SSH端口转发来加密连接:
    在本地终端执行:

    ssh -L 5678:localhost:5678 远程机器用户名@远程机器IP
    

    之后把VS Code的launch.json里的host改成localhost,这样本地连localhost:5678就相当于通过SSH隧道连接到远程机器的5678端口,更安全。

备注:内容来源于stack exchange,提问作者Marc

火山引擎 最新活动