Python中如何在远程主机上进行代码调试

刚刚在服务器上调试自己的代码,所以提起了这个话题,个人一般习惯是打 log 来 debug


Python中如何在远程主机上进行代码调试
10 回复

pycharm 可以直接 remote debug


对于远程调试,我一般用 debugpy,这是 VS Code 官方推荐的方案。首先在远程主机上安装并启动调试服务器:

# 在远程主机上安装
pip install debugpy

# 启动调试服务器,监听5678端口
python -m debugpy --listen 0.0.0.0:5678 --wait-for-client your_script.py

然后在本地 VS Code 中配置 .vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Remote Attach",
            "type": "python",
            "request": "attach",
            "connect": {
                "host": "your_remote_ip",
                "port": 5678
            },
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "/path/to/remote/project"
                }
            ]
        }
    ]
}

启动调试后就能像本地一样设断点、单步执行了。如果代码路径不一致,pathMappings 配置很关键。

还有个更直接的方法是用 SSH 端口转发,把远程的调试端口映射到本地:

ssh -L 5678:localhost:5678 user@remote_host

这样本地直接连接 localhost:5678 就行,不用改 VS Code 配置。

如果不用 VS Code,PyCharm 也支持类似的远程调试,配置原理差不多。

总结:用 debugpy 最省事。

ssh tunnel 到 remote mysql
然后本地 PyCharm 直接走调试?

pycharm 理论上应该跳不过堡垒机?应该只能直连服务器?

#3 端口转发到本地就好了

屏幕翻动太快吗? tmux ?

4#正解,端口转发一下就好了

用 log 比较清晰,因为还可以定义行数,之后可能会尝试一下 pycharm 的 remote debug 工具

楼上正解,端口转发一下就好

远程调试,搭配 sourcemaps

回到顶部