温馨提示×

Python在Ubuntu上如何进行远程调试

小樊
53
2025-10-01 18:26:23
栏目: 编程语言

Python在Ubuntu上的远程调试方法

1. 使用VS Code的Remote Development扩展包(推荐)

VS Code的Remote Development扩展包是远程调试的常用工具,支持通过SSH连接远程Ubuntu服务器,实现本地编辑、远程调试的无缝体验。
步骤:

  • 安装扩展:在VS Code中搜索并安装“Remote – SSH”扩展(需提前安装VS Code)。
  • 配置SSH连接:打开VS Code命令面板(Ctrl+Shift+P),输入“Remote-SSH: Connect to Host…”,输入远程Ubuntu服务器的SSH地址(如user@remote_host),连接成功后VS Code会在远程服务器上安装所需组件。
  • 配置调试器:在VS Code中创建launch.json文件(点击左侧“Run and Debug”→齿轮图标),添加以下配置:
    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Python: Remote Attach",
          "type": "python",
          "request": "attach",
          "connect": {
            "host": "remote_host",  // 远程服务器IP或域名
            "port": 5678           // 调试端口(需与远程一致)
          },
          "pathMappings": [
            {
              "localRoot": "${workspaceFolder}",  // 本地项目路径
              "remoteRoot": "/path/to/your/project"  // 远程项目路径
            }
          ]
        }
      ]
    }
    
  • 启动远程调试:在远程Ubuntu服务器上运行Python脚本时,添加调试参数:
    python -m debugpy --listen 0.0.0.0:5678 /path/to/your/script.py
    
    回到VS Code,点击“开始调试”按钮,即可连接远程调试会话,支持断点、步进、变量查看等功能。

2. 使用PyCharm Professional Edition的远程调试功能

PyCharm Professional Edition支持远程调试,通过配置Python Debug Server实现本地与远程的联动。
步骤:

  • 安装pydevd-pycharm库:在远程Ubuntu服务器上安装指定版本的pydevd-pycharm库(版本需与PyCharm匹配,如pip install pydevd-pycharm==221.5921.27)。
  • 配置PyCharm Debug Server:打开PyCharm,点击“Edit Configurations”→“+”→“Python Debug Server”,填写以下信息:
    • Name:自定义名称(如“Ubuntu Debug”);
    • IDE host name:本地机器IP(如192.168.1.100);
    • Port:调试端口(如2233)。
  • 修改远程代码:在被调试的Python脚本中添加以下代码(与PyCharm配置一致):
    import pydevd_pycharm
    pydevd_pycharm.settrace('192.168.1.100', port=2233, stdoutToServer=True, stderrToServer=True)
    
  • 启动调试:在PyCharm中点击“Debug Ubuntu Debug”按钮,启动调试服务;然后在远程Ubuntu服务器上运行脚本(python3 script.py),PyCharm会自动连接并进入调试模式,支持断点、变量监控等功能。

3. 使用rpdb远程调试库(轻量级方案)

rpdb是基于pdb的远程调试库,适合简单的远程调试场景,无需复杂配置。
步骤:

  • 安装rpdb:在本地和远程Ubuntu服务器上安装rpdb库(pip install rpdb)。
  • 插入断点:在被调试的Python脚本中添加以下代码(指定监听地址和端口):
    import rpdb
    rpdb.set_trace(address=('0.0.0.0', 4444))  # 监听所有IP的4444端口
    
  • 连接调试:在本地机器上使用telnet或nc工具连接远程调试端口:
    telnet remote_host 4444  # 或 nc remote_host 4444
    
    连接成功后,可使用pdb命令(如c继续、n下一步、p变量名打印变量)进行调试。

注意事项

  • 安全性:远程调试需开放端口,建议使用SSH隧道加密通信(如VS Code的Remote - SSH扩展默认通过SSH加密);避免使用弱密码,推荐使用SSH密钥登录。
  • 环境一致性:确保本地与远程Ubuntu服务器的Python版本、依赖库一致(可通过requirements.txt或虚拟环境同步)。
  • 端口冲突:调试端口(如5678、2233、4444)需未被占用,可通过netstat -tulnp | grep 端口号检查。

0