PyCharm 远程debug 快速上手

这篇具有很好参考价值的文章主要介绍了PyCharm 远程debug 快速上手。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、方法

1. 配置远程解释器(简单高效,强烈推荐!!!)

 要求: 通过 SSH 从本地机器访问远程服务器,使用任何预定义的端口从远程服务器访问本地机器,最好关掉vpn等网络代理服务

常见问题:pycharm可以使用远程解释器运行,但是不能debug

单独在远程执行:

python -u /root/.pycharm_helpers/pydev/pydevd.py --multiproc --client 0.0.0. 0 --port 37990

 报错:

Could not connect to 0.0.0.0: 37990
Traceback (most recent call last):
  File "/root/.pycharm_helpers/pydev/_pydevd_bundle/pydevd_comm.py", line 456, in start_client
    s.connect((host, port))
ConnectionRefusedError: [Errno 111] Connection refused
Traceback (most recent call last):
  File "/root/.pycharm_helpers/pydev/pydevd.py", line 2173, in <module>
    main()
  File "/root/.pycharm_helpers/pydev/pydevd.py", line 2055, in main
    dispatcher.connect(host, port)
  File "/root/.pycharm_helpers/pydev/pydevd.py", line 1826, in connect
    self.client = start_client(self.host, self.port)
  File "/root/.pycharm_helpers/pydev/_pydevd_bundle/pydevd_comm.py", line 456, in start_client
    s.connect((host, port))
ConnectionRefusedError: [Errno 111] Connection refused

问题原因分析:
要求: 通过 SSH 从本地机器访问远程服务器,使用任何预定义的端口从远程服务器访问本地机器。

2. 使用 Python 远程调试服务器配置 (有代码侵入,不是很推荐)

 从主菜单中选择 Run | Edit Configuration… 。运行/调试配置对话框打开。您必须单击工具栏,然后从可用配置列表中选择 pythondebug Server。

PyCharm 远程debug 快速上手,python,pycharm,ide,python

输入运行/调试配置的名称,设为 MyRemoteServer;指定运行 IDE 的机器的端口号(这里是12345)和 IDE 主机名(这里是172.20.208.95);远程调试服务器将使用这些参数来访问它。

根据IDE界面的提醒,安装对应的pydevd-charm;执行 pydevd_pycharm.settrace

将本地机器上的路径映射到远程机器上的路径:

PyCharm 远程debug 快速上手,python,pycharm,ide,python

使用步骤:

1.  IDE 启动后,会显示自己在监听状态,然后在Pycharm中设置断点。

2.  然后运行远端的py程序,使用命令行执行(并非在IDE中,是在远端命令执行)

修改源代码文件如下:

import math
#==============this code added==================================================================:
import pydevd_pycharm

pydevd_pycharm.settrace('172.20.208.95', port=12345, stdoutToServer=True,
                        stderrToServer=True)
#================================================================================================
class Solver:

    def demo(self, a, b, c):
        d = b ** 2 - 4 * a * c
        if d > 0:
            disc = math.sqrt(d)
            root1 = (-b + disc) / (2 * a)
            root2 = (-b - disc) / (2 * a)
            return root1, root2
        elif d == 0:
            return -b / (2 * a)
        else:
            return "This equation has no roots"

if __name__ == '__main__':
    solver = Solver()

while True:
    a = int(input("a: "))
    b = int(input("b: "))
    c = int(input("c: "))
    result = solver.demo(a, b, c)
    print(result)

如上,可以看到该方法对代码有侵入!

注意事项: 如果将程序部署到远端,那么需要Remote Debug配置中的localhost修改为安装Pycharm主机的IP地址,同时将PycharmRemoteDebug.py中的localhost改为同样的IP地址。

PyCharm 远程debug 快速上手,python,pycharm,ide,python
使用Pycharm的Deployment功能映射远程和本地代码;
断点命中时,客户端程序处于暂定状态;
如果没有开启Remote Debug Server,运行客户端会卡住;
不需要使用Remote Debug时一定不要在程序启动的时候import PycharmRemoteDebug模块;

总结: 因此,此方案,必须保证远端环境可以主动连接到你IDE本地环境!
 

二、远程调试原理简介

如果程序部署在远端,要在本地获取程序运行状态并进行断点调试,必然需要连接到程序并进行通讯;利用Pycharm进行远程调试的过程中,Pycharm充当服务器的角色。

首先,对Pycharm Run/Debug Configures进行配置,指定Pycharm安装端的一些属性,比如Pycharm所在主机的IP地址和端口号等。

然后,启动Pycharm的远程调试。这时Pycharm处于监听状态,等待独立于IDE之外运行的程序的连接。

其次,在远端程序刚启动时,需要根据Pycharm Debug Configures中的配置信息,连接到Pycharm。

PyCharm 远程debug 快速上手,python,pycharm,ide,python
最后,连接成功之后,当远程客户端运行到本地Pycharm中设置的断点处时,便会在断点处暂停程序的执行,而在本地Pycharm命中断点处能够看到远端程序当前运行的状态和调用栈等信息并进行下一步跟踪和逐步调试。

本地Pycharm中调试的源代码工程应和远端运行的程序源代码保持一致。

Pycharm中Remote Debug Configure的配置要保证能够被远程连接。

由于远程客户端使用Pycharm提供的pydevd模块连接到本地的Pycharm remote Debug,两者通讯链接均遵循Pycharm自定义的协议;因此我们不必关心Pycharm设置断点和远程客户端命中断点过程中两端具体的实现和处理过程,只要保证我们的Debug Configure有效即可;然后在需要的地方通过断点暂定程序,分析当前程序状态找出问题所在。
 文章来源地址https://www.toymoban.com/news/detail-730450.html

到了这里,关于PyCharm 远程debug 快速上手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python简单使用【mac-ide:pycharm】

    一、Mac下安装并配置python3开发环境 点我查看python及pycharm下载安装、环境配置 二、pycharm常用快捷键记录 1 全局搜索 2 增加行/ 复制选中的代码 3 删除行 /剪切 4 格式化代码 5 执行程序 eg : 在py文件里输入 print(‘hello’) 输入快捷键后可直接打印在控制台,或者右键点击运行

    2024年02月13日
    浏览(41)
  • Python 环境搭建,集成开发环境IDE: PyCharm

    今天我要和大家分享一个非常有趣的话题——Python开发环境搭建。在我们的日常生活中,图片处理已经成为了一个非常常见的需求,无论是修图、美颜还是进行一些创意合成,都离不开图片处理。而Python作为一门功能强大的编程语言,在图片处理方面也能够发挥出其独特的优

    2024年02月08日
    浏览(71)
  • pycharm的debug调试以及异常,Python 中错误的处理方式

    在b站看了详细的视频教程,做一个系统的总结。第一次写关于pycharm的debug调试以及python代码运行报错处理的帖子,错误地方请大家指出。 作为一个非科班出生的学生,平时看代码的时候特别的难懂,这时候对代码debug单步调试可以很好的看代码的具体信息。让我们能够更加清

    2023年04月19日
    浏览(34)
  • Python零基础入门(二)——IDE介绍以及Python+PyCharm的安装

    个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟 码字不易,如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!😊😊😊 上一篇博客介绍了 Python 的简洁性、易读性以及强大

    2024年02月09日
    浏览(69)
  • 面向专业开发者的Python IDE——PyCharm,各个版本如何抉择?

    PyCharm是一个专业的Python集成开发环境(IDE),为Python开发人员提供了广泛的基本工具,紧密集成为高效的Python、Web和数据科学开发创建了一个方便的环境。 PyCharm v2022.2正式版下载 (技术交流Q:786598704) 选择最适合自己的PyCharm版本 PyCharm有三个版本: 社区版 (免费且开源):用

    2024年02月08日
    浏览(48)
  • Python开发IDE的比较:PyCharm vs. VS Code vs. Jupyter

    Python开发IDE的比较:PyCharm vs. VS Code vs. Jupyter Python开发社区中已经存在了相当长时间的持续争论:PyCharm vs. VS Code vs. Jupyter。 PyCharm:专业人士的选择 让我们从PyCharm开始。它是一个功能强大的集成开发环境(IDE),通常被认为是专业Python开发的首选工具。 凭借其强大的功能集

    2024年02月07日
    浏览(45)
  • python&anconda 系列:Pycharm在debug问题的N种解决方案(一般程序、web方向、人工智能方向)

    前言 Pycharm在debug时总是出现一些恼人的问题,以下是博主在训练中遇到的问题及在网上找到的可用解决方案: 一、Frames are not available 在代码处多设置几个断点即可。 好像还有另一种原因,博主自己没遇到(希望之后也别遇到),先把解决方案贴在这里(详情见 二. Pycharm在

    2024年02月01日
    浏览(37)
  • Pycharm Debug调试技巧

    Python中的Bug是指程序在执行过程中出现错误的情况。这些错误可能会导致程序崩溃、输出意外的结果或者根本不运行。 常见的Python Bug包括: 语法错误:例如拼写错误、缺少冒号、使用了错误的缩进等等。 逻辑错误:程序可以运行,但是它并没有如预期那样工作。这通常是因

    2024年02月09日
    浏览(38)
  • Pycharm Debug调试(纯干货)

    内容目录(原文见公众号python宝或 www.xmmup.com ) 一、打断点二、代码调试三、界面小图标介绍四、控制台介绍 一、打断点         一个断点标记了一个代码行,当Pycharm运行到该行代码时会将程序暂时挂起。         注意断点会将对应的代码行标记为红色,取消断点的

    2024年02月02日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包