利用PyCharm进行Python远程调试

简介: 背景描述 有时候Python应用的代码在本地开发环境运行十分正常,但是放到线上以后却出现了莫名其妙的异常,经过再三排查以后还是找不到问题原因,于是就在想,要是可以在服务器环境中进行单步跟踪调试就好了。

背景描述

有时候Python应用的代码在本地开发环境运行十分正常,但是放到线上以后却出现了莫名其妙的异常,经过再三排查以后还是找不到问题原因,于是就在想,要是可以在服务器环境中进行单步跟踪调试就好了。

然而,在服务器系统上安装一个IDE肯定是不现实的;通过SSH远程到服务器端,采用pdb进行调试虽然可行,但是操作还是较为繁琐,而且也不够直观。

那么,是否可以将开发环境中的IDE与服务器环境相连,实现利用开发环境的IDE调试服务器环境中运行的程序呢? 答案是肯定的,这就是远程调试(Remote Debug)。

远程调试的工作原理

远程调试的功能在Eclipse、IntelliJ IDEA等大型IDE中均有支持,实现原理都基本相同,这里采用PyCharm进行说明。

在远程调试的模式下,PyCharm(IDE)扮演服务端(Server)的角色,而运行在远程计算机上的应用程序扮演客户端(Client)的角色。正因如此,进行远程调试时,需要先在本地开发环境中设定端口并启动IDE,IDE会对设定的端口开始监听,等待客户端的连接请求;那远程计算机中的应用程序又是怎样与IDE建立通讯连接的呢?

针对远程调试功能,PyCharm提供了pydevd模块,该模块以pycharm-debug.egg的形式存在于PyCharm的安装路径中。远程计算机安装该库文件后,然后就可以调用pydevd.settrace方法,该方法会指定IDE所在机器的IP地址和监听的端口号,用于与IDE建立连接;建立连接后,便可在IDE中对远程在远程计算机中的程序进行单步调试。

远程调试的配置方法

1、在远程计算机上安装pydevd模块

首先,在本地开发环境的PyCharm安装路径中找到pycharm-debug.egg文件(若远程计算机运行的是Python3,则需要pycharm-debug-py3k.egg);

然后,将pycharm-debug.egg文件拷贝至远程计算机,在远程计算机中将pycharm-debug.egg添加至引用路径,可以采用多种方式:

  • 采用easy_install pycharm-debug.egg命令进行安装(pip命令无法安装,只能使用easy_install)
  • pycharm-debug.egg添加至PYTHONPATHsys.pathimport sys; sys.path.append('/home/leo/app-dependancies/pycharm-debug.egg')
  • 解压pycharm-debug.egg,将其中的pydev文件夹拷贝至远程应用程序目录下

最后,在远程计算机的Python命令行中输入import pydevd,若没有报错则说明pydevd模块安装成功。

2、在本地开发环境的PyCharm中进行监听配置

在PyCharm中配置说明如下:

  • 【Run】->【Edit Configurations】
  • 【Add New Configuration】->【Python Remote Debug】
  • 填写Local host namePort,其中Local host name指的是本机开发环境的IP地址,而Port则随便填写一个10000以上的即可;需要注意的是,由于远程计算机需要连接至本地开发环境,因此本地IP地址应该保证远程可以访问得到
  • 【Apply】and【OK】

3、在本地开发环境的PyCharm中配置Mapping映射

4、在远程计算机的应用程序中插入代码

将如下代码插入至远程计算机的应用程序中。

import pydevd
pydevd.settrace('100.84.48.156', port=31235, stdoutToServer=True, stderrToServer=True) 

其中,IP地址和端口号要与PyCharm中的监听配置保持一致。

5、在PyCharm中启动Debug Server

【Run】->【Debug…】,选择刚创建的远程调试配置项,在Debug Console中会显示如下信息:

Starting debug server at port 31235
Waiting for process connection...
Use the following code to connect to the debugger:
import pydevd
pydevd.settrace('100.84.48.156', port=31235, stdoutToServer=True, stderrToServer=True) 

这说明Debug Server已经启动并处于监听状态。

6、在远程计算机中启动应用程序

在远程计算机中启动应用程序,当执行到pydevd.settrace语句时,便会与本地开发环境中的PyCharm建立通讯连接,接下来便可以在本地IDE中进行单步调试了。

需要注意的是,本地开发环境必须保证IP地址和端口号可从远程计算机访问得到,否则会无法建立连接。

$ telnet 100.84.48.156 31235
Trying 100.84.48.156...
telnet: Unable to connect to remote host: Connection refused

$ python devicedectector.py
Could not connect to 100.84.48.156: 31236
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pycharm-debug.egg/pydevd_comm.py", line 478, in StartClient s.connect((host, port)) File "/usr/lib/python2.7/socket.py", line 224, in meth return getattr(self._sock,name)(*args) error: [Errno 111] Connection refused
技术改变世界! --狂诗绝剑
目录
相关文章
|
8月前
|
人工智能 IDE 开发工具
JetBrains PyCharm 2025.1 发布 - 面向专业开发者的 Python IDE
JetBrains PyCharm 2025.1 (macOS, Linux, Windows) - 面向专业开发者的 Python IDE
880 29
JetBrains PyCharm 2025.1 发布 - 面向专业开发者的 Python IDE
|
8月前
|
IDE 开发工具 开发者
手把手教你安装PyCharm 2025:开发者的Python IDE配置全流程+避坑指南
本教程详细介绍了PyCharm 2025版本在Windows系统下的安装流程及配置方法,涵盖AI代码补全与智能调试工具链等新功能。内容包括系统要求、安装步骤、首次运行配置(如主题选择与插件安装)、创建首个Python项目,以及常见问题解决方法。此外,还提供了切换中文界面和延伸学习资源的指导,帮助用户快速上手并高效使用PyCharm进行开发。
4157 61
|
Java UED Python
【10月更文挑战第4天】「Mac上学Python 4」入门篇4 - PyCharm高效开发环境配置与使用技巧
本篇将详细介绍如何高效地使用PyCharm进行Python开发,内容涵盖PyCharm的主题设置、字体调整、常用快捷键、虚拟环境的管理、库安装与调试技巧等。通过本篇的学习,用户将能够充分利用PyCharm的功能,提升Python开发效率。
474 2
【10月更文挑战第4天】「Mac上学Python 4」入门篇4 - PyCharm高效开发环境配置与使用技巧
|
11月前
|
IDE 测试技术 项目管理
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
PyCharm是由JetBrains开发的Python集成开发环境(IDE),专为Python开发者设计,支持Web开发、调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制等功能。它有专业版、教育版和社区版三个版本,其中社区版免费且适合个人和小型团队使用,包含基本的Python开发功能。安装PyCharm前需先安装Python解释器,并配置环境变量。通过简单的步骤即可在PyCharm中创建并运行Python项目,如输出“Hello World”。
4002 13
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
4392 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
Python Windows
安装python 以及 安装 pycharm
安装python 以及 安装 pycharm
|
数据库 Python Windows
Python:Pycharm安装指南
1. 双击安装程序,点击Next。 2. 选择安装路径,Next。 3. 默认选项,添加环境变量,Next。 4. 保持默认设置,点击Install。 5. 安装完成后选择是否立即重启。
334 2
Python:Pycharm安装指南
|
开发工具 Python Windows
【Python专栏】搭建Pyhthon运行环境及开发环境 | 安装Python | 安装PyCharm
【Python专栏】搭建Pyhthon运行环境及开发环境 | 安装Python | 安装PyCharm
531 4
|
JSON 数据格式 Python
Flask实现内部接口----pycharm安装及新建,location代表着文件路径,下面是Python的环境,Flask是由Python开发的框架,Python文件接口ython通过GET发送
Flask实现内部接口----pycharm安装及新建,location代表着文件路径,下面是Python的环境,Flask是由Python开发的框架,Python文件接口ython通过GET发送
|
iOS开发 MacOS Python
【Python】已解决:(Pycharm切换Python版本后报错)No Python at “C:\Program Files\Python39\python.exe”
【Python】已解决:(Pycharm切换Python版本后报错)No Python at “C:\Program Files\Python39\python.exe”
1305 0
【Python】已解决:(Pycharm切换Python版本后报错)No Python at “C:\Program Files\Python39\python.exe”

推荐镜像

更多