PyCharm利用pydevd-pycharm实现Python远程调试

一、介绍

Python远程调试,即在远程机器上运行python代码在本地进行调试,之前文章里的方式方法已经out,现在更新为当前版本已经成功实现远程调试的新内容。

依赖环境:

  • 本地Pycharm:PyCharm 2022.1.3(Professional Edition)
    IP:192.168.30.111

  • 远程Ubuntu:VMware Ubuntu 20.04.03
    IP:192.168.30.132

  • 二、安装

    远程主机安装:pydevd-pycharm库,且需要安装指定版本:
    pip3 install pydevd-pycharm~=221.5921.27 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

    三、配置

    3.1 PyCharm端配置

    1. 点击PyCharm菜单栏:Edit Configurations

    2. Run/Debug Configurations中点击+加号按钮,在弹出列表中选择Python Debug Server

    3. 需要配置字段如下:

  • Name:ubuntu python
  • IDE host name:192.168.30.111
  • Port:2233
    1. 点击OK保存该配置

    至此,本地端PyCharm配置完成,配置无误可以在菜单栏看到ubuntu python这个配置,且图标无正常状态,如果上述配置项有误,则会展示打红叉标记的图标,比如配置错误的端口号。

    3.2 Ubuntu端配置

    远程环境需要的配置主要是修改被调试的代码文件,在代码中增加相关配置:

  • 被调试代码文件:/home/test/super2.py
  • 需要增加的配置:
  • import pydevd_pycharm
    pydevd_pycharm.settrace('192.168.30.111', port=2233, stdoutToServer=True, stderrToServer=True)
    
    class A:
        def __init__(self):
            self.n = 2
    
        def add(self, m):
            print('self is {0} @A.add'.format(self))
            self.n += m
    
    
    class B(A):
        def __init__(self):
            self.n = 3
    
        def add(self, m):
            print('self is {0} @B.add'.format(self))
            super().add(m)
            self.n += 3
    
    
    b = B()
    b.add(2)
    print(b.n)
    

    需要导入远程调试库,配置信息需要和PyCharm端配置的内容保持一致:

    至此,远程被调试的代码需要的配置完成。

    四、实际调试

    1. 在本地PyCharm端,打开调试服务,即点击菜单栏中ubuntu python后的Debug ubuntu python按钮:

    2. 启动成功,会出现等待连接的提示信息:

    3. 此时,我们需要在Ubuntu端,启动被调试的代码:python3 super2.py,运行成功后Ubuntu端不会里面执行代码,需要等待远程PyCharm端开始调试过程,才会执行代码并打印结果,而PyCharm端会在Console下展示连接成功的提示:Connected to pydev debugger (build 221.5921.27)

    4. 此时我们会看到PyCharm弹出了一个提示,这个提示里的内容就是我们调试的是远程文件,而本地没有与之对应的文件,可以通过提示给出的三个解决方案进行解决,这里我选择了:Download选项

    5. 最后开始执行具体的调试即可:

    物联沃分享整理
    物联沃-IOTWORD物联网 » PyCharm利用pydevd-pycharm实现Python远程调试

    发表回复