PyCharm利用pydevd-pycharm实现Python远程调试的详细过程
作者:二的平方 发布时间:2022-01-22 19:54:26
一、介绍
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
4.点击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.最后开始执行具体的调试即可:
来源:https://blog.csdn.net/zhaoxz1985/article/details/126767888
猜你喜欢
- Django上传文件最简单最官方的方法1.配置media路径在settings.py中添加如下代码:MEDIA_ROOT =&nb
- 简单Python词法分析器实现,供大家参考,具体内容如下词法分析器状态转换图:词法分析器总流程图:预处理程序:词法分析器:词法分析器程序详细
- 正在看的ORACLE教程是:Oracle 数据表分区的策略。本文描述通过统计分析出医院信息系统需分区的表,对需分区的表选择分区键,即找出包括
- 1.INPUT和图片按钮对齐:<form method="post" action="
- 本文实例讲述了Python实现对象转换为xml的方法。分享给大家供大家参考,具体如下:# -*- coding:UTF-8 -*-'
- 一、设置画布turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置turtle.screensize(canvwidth=600
- 我们知道为了提高代码的运行速度,我们需要对书写的python代码进行性能测试,而代码性能的高低的直接反馈是电脑运行代码所需要的时间。这里将介
- 用python内置的xml.dom可以对xml文件进行解析处理。什么是xml?XML 指可扩展标记语言(EXtensible Markup
- python 2.6编写,自己瞎写的,备用''' Export and Import ElasticSe
- 由于我们分发的python应用可能运行在64位环境,也可能运行在32位环境,所以我们需要为同一套应用代码配置两套打包环境,怎么配置?步骤如下
- 准备工作:python:https://www.python.org/downloads/Dev-C++:https://sourcefor
- 顺序表即线性表的顺序存储结构。它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的。比
- 前言本方法基于web2py框架,使用web2py的完整网站数据包创建简单网站。web2py 是一个为Python语言提供的全功能Web应用框
- 本文实例讲述了python os模块简单应用。分享给大家供大家参考,具体如下:举例中的目录形式如下所示:In [36]: pwdOut[36
- 本文实例讲述了Python基于opencv的图像压缩算法。分享给大家供大家参考,具体如下:插值方法:CV_INTER_NN - 最近邻插值,
- 这段时间在用libev的python版本事件模型,总共只有一个py.so文件,没有.py文件查看源码查看接口,最开始用shell命令直接查看
- 有些页面并不能直接用requests获取到内容,会动态执行一些js代码生成内容。这个文章主要是对付那些特殊页面的,比如必须要进行js调用才能
- 创建df:>>> df = pd.DataFrame(np.arange(16).reshape(4, 4), colum
- [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋
- 完成了UI,我们就需要对数据进行处理了。在开始“数据”的本地存储之前,我们先来了解一下client-side database storag