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
猜你喜欢
- 一 Protobuf介绍Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标
- 代码如下:登陆时记录cookies页面代码 <!--#include file="md5.asp"--&
- # -*- coding: utf-8 -*- import httplibfrom urllib import urlencodeimpo
- 查看python内部模块命令,内置函数,查看python已经安装的模块命令可以用dir(modules)或者用 pip list或者用 he
- 很多朋友希望,我能把我做网站的一些流程及经验跟大家分享一下,最近刚好做一次内部培训,所以稍微整理了一下,这些只是针对网页初学者,具有一定平面
- 一个网站的导航就相当于是一条路的路标,不同的是,网站的不同栏目页的入口远远比马路要来得复杂,所以一个清晰的导航设计对于一个网站的意义远远大于
- 一 概念固定窗口就像是滑动窗口的一个特例,固定窗口是大小固定且不能随着时间而变化的。滑动时间窗口就是把一段时间片分为多个样本窗口,可以通过更
- 针对很普遍的每个元素的操作会遍历每个元素进行操作。这里给出了几种写法,列表每个元素自增等数学操作同理;示例:整形列表ilist加1个数、元素
- 1、实现的效果示例代码:df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2
- #-*- encoding: utf-8 -*-'''Created on 2014-4-24@author: Le
- 很早以前就有很多关于用CSS制作的相册,今天突然想看又找不到,反正也无聊,自己做了一下,结果做一下发现自己温习了一些东西。还行,
- Win10系统下MySQL 8.0.20安装和配置超详细教程MySQL下载MySQL直接去官网下载就行,选择community版本(免费)下
- 简介现在的网站没有 HTTPS 都不好意思见人了.超文本传输安全协议(英语:HyperText Transfer Protocol Secu
- 正文:本文展示一些高级的Python设计结构和它们的使用方法。在日常工作中,你可以根据需要选择合适的数据结构,例如对快速查找性的
- 利用 CSS 框架,可以简化你的工作,提高工作效率。CSS 框架是一系列 CSS 文件的集合体,包含了基本的元素重置,页面排版、网格布局、表
- 使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑
- 前言多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有
- 我就废话不多说了,大家还是直接看代码吧~#! python3# -*- coding: utf-8 -*-import os, codecs
- 1.建表脚本1.1.建表DROP TABLE IF EXISTS `sys_region`;CREATE TABLE `sys_region
- 前言近几年,制造业作为国民经济主体,是国家创造力、竞争力和综合国力的重要体现。作为制造强国建设的主攻方向,可以说,智能制造发展水平关乎我国未