参考文章:Remote Debugging Guide for Python

PyQGIS CookBook 16.4. IDE settings for writing and debugging plugins

Remote Debugging with PyCharm

一、检查Pycharm版本

Eclipse+Pydev使用的是pydev进行调试,在Pycharm中我们依然可以使用pydev进行调试。根据Jetbrains的官方文档,Pycharm Community版本不支持Remote Debug。如果想要使用Pycharm的远程调试功能调用Pydev包进行调试,就需要安装Professional版本

JetBrains全家桶提供了学生授权供学生免费使用。只要使用武大的邮箱在其官网注册一个账号,然后申请学生授权就可以免费使用JetBrains的所有产品。

参考:https://jingyan.baidu.com/article/acf728fd862d44f8e510a385.html

二、为Python解释器安装pydevd-pycharm库

首先在Run/Debug Configurations中选择edit configurations,打开编辑页面。

点击+号,选择添加一个Python Debug Server

根据右侧的提示,记住需要安装的pydevd-pycharm库的版本号,我这里是202.7319.64

然后设置IDE host name为localhost或者127.0.0.1,端口Port设置为53100

打开菜单栏的File->Settings,选择Python Interpreter,可以看到我们之前配置好的Python环境(QGIS自带的python环境)

点击旁边的+号,打开Package添加页面,搜索pydevd-pycharm包。

勾选Specify version,并选择之前我们记住的版本号,202.7319.64。点击Install Package安装pydevd-pycharm包。

三、调试QGIS插件

在需要调试的python模块中引入pydevd-pycharm包

import pydevd_pycharm

并根据需要调试的位置,编写如下语句

# 其中的'localhost'和port是在Python Debug Server中填写的值
pydevd_pycharm.settrace('localhost', port=53100, stdoutToServer=True, stderrToServer=True)

该语句相当于一个断点,执行调试的时候会首先在该语句的位置停止,然后才能继续执行代码。

在Pycharm中点击Debug按钮,控制台中会提示正在等待连接

现在打开QGIS,使用Plugin Reloader重新加载我们编写的插件,然后运行插件

此时,对插件进行操作,就会在我们调用pydevd_pycharm.settrace()的位置停下来(可以看到控制台中已经显示连接到了pydev debugger),就下来就能够使用pycharm的断点调试工具进行正常的调试了。

QGIS 插件开发Debug教程——使用Pycharm的更多相关文章

  1. jQuery插件开发详细教程

    这篇文章主要介绍了jQuery插件开发详细教程,将概述jQuery插件开发的基本知识,最佳做法和常见的陷阱,需要的朋友可以参考下 扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间. ...

  2. qgis 插件开发

    qgis 插件开发 http://blog.csdn.net/v6543210/article/details/40480341

  3. Web开发入门教程:Pycharm轻松创建Flask项目

    Web开发入门教程:Pycharm轻松创建Flask项目 打开Pycharm的file,选择创建新的项目,然后弹出对话框,我们可以看到里面有很多的案例,Flask.Django等等,我们选择生成Fla ...

  4. BeatSaber节奏光剑插件开发官方教程1-创建一个插件模板

    原文:https://wiki.assistant.moe/modding/intro 一.简介 Beat Saber 开发环境:unity2018.C#..NET framework 4.6. 此教 ...

  5. jQuery插件开发精品教程,让你的jQuery提升一个台阶

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  6. Jquery插件开发精品教程

    最开始接触jquery对他提供的各种插件总是十分有兴趣,但是总是不理解为什么这样写,从网络上查询了很久终于找到这篇文章,讲解的很详细,分享给大家. 要说jQuery 最成功的地方,我认为是它的可扩展性 ...

  7. 转:jQuery插件开发精品教程,让你的jQuery提升一个台阶

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  8. 【转载】jQuery插件开发精品教程,让你的jQuery提升一个台阶

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  9. [转]jQuery插件开发精品教程,让你的jQuery提升一个台阶

    原文链接:http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html 要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其 ...

随机推荐

  1. markdown类型文件编辑大全

    正文: 1.标题的几种写法: 第一种:     前面带#号,后面带文字,分别表示h1-h6,上图可以看出,只到h6,而且h1下面会有一条横线,注意,#号后面有空格 第二种:      这种方式好像只能 ...

  2. 关于IIS站点最大并发量分析

    关于IIS站点最大并发量分析,会有如下这个疑问:IIS站点最大并发量是多少? 一般为:   IIS站点最大并发量=队列长度+进程数量[即最大工作进程数] 通过这个公式,可以基本评估出一个IIS站点的最 ...

  3. 假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以 某个固定的已知的前缀开头的,如果将它们全部找出来?

    使用 keys 指令可以扫出指定模式的 key 列表. 对方接着追问:如果这个 redis 正在给线上的业务提供服务,那使用 keys 指令会 有什么问题? 这个时候你要回答 redis 关键的一个特 ...

  4. Servlet:浏览器下载文件时文件名为乱码问题

    1 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExcep ...

  5. Servlet的会话机制?

    因为http协议是无状态协议,又称为一次性连接,所以webapp必须有一种机制 能够记住用户的一系列操作,并且唯一标示一个用户. Cookie: 又称为小饼干,实际就是使用一个短文本保存用户信息, 在 ...

  6. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

    Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件.application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置.b ...

  7. 什么叫线程安全?servlet 是线程安全吗?

    线程安全是编程中的术语,指某个函数.函数库在多线程环境中被调用时,能够 正确地处理多个线程之间的共享变量,使程序功能正确完成. Servlet 不是线程安全的,servlet 是单实例多线程的,当多个 ...

  8. spring-boot--lernning之自定义starters

    思路: 1这个场景需要使用到的依赖是什么??? 2如何编写自动配置 @Configuration 指定这个类是一个配置类 @ConditionalOnXXXX 指定条件下成立的情况下自动配置类生效 @ ...

  9. 在并发情况下,Elasticsearch 如果保证读写一致?

    1.可以通过版本号使用乐观并发控制,以确保新版本不会被旧版本覆盖,由应用 层来处理具体的冲突: 2.另外对于写操作,一致性级别支持 quorum/one/all,默认为 quorum,即只 有当大多数 ...

  10. ctfhub web信息泄露备份文件下载(网站源码,back文件)

    网站源码 进入环境,首先我们用bp抓一下包 在HTTP请求方式GET/后添加两个负载,一个用于爆破文件名,一个用于爆破后缀名 得知网页源码的备份形式为www.zip,下载网页源码 打开记事本文件 发现 ...