QGIS 插件开发Debug教程——使用Pycharm
参考文章:Remote Debugging Guide for Python
PyQGIS CookBook 16.4. IDE settings for writing and debugging plugins
一、检查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的更多相关文章
- jQuery插件开发详细教程
这篇文章主要介绍了jQuery插件开发详细教程,将概述jQuery插件开发的基本知识,最佳做法和常见的陷阱,需要的朋友可以参考下 扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间. ...
- qgis 插件开发
qgis 插件开发 http://blog.csdn.net/v6543210/article/details/40480341
- Web开发入门教程:Pycharm轻松创建Flask项目
Web开发入门教程:Pycharm轻松创建Flask项目 打开Pycharm的file,选择创建新的项目,然后弹出对话框,我们可以看到里面有很多的案例,Flask.Django等等,我们选择生成Fla ...
- BeatSaber节奏光剑插件开发官方教程1-创建一个插件模板
原文:https://wiki.assistant.moe/modding/intro 一.简介 Beat Saber 开发环境:unity2018.C#..NET framework 4.6. 此教 ...
- jQuery插件开发精品教程,让你的jQuery提升一个台阶
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
- Jquery插件开发精品教程
最开始接触jquery对他提供的各种插件总是十分有兴趣,但是总是不理解为什么这样写,从网络上查询了很久终于找到这篇文章,讲解的很详细,分享给大家. 要说jQuery 最成功的地方,我认为是它的可扩展性 ...
- 转:jQuery插件开发精品教程,让你的jQuery提升一个台阶
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
- 【转载】jQuery插件开发精品教程,让你的jQuery提升一个台阶
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
- [转]jQuery插件开发精品教程,让你的jQuery提升一个台阶
原文链接:http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html 要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其 ...
随机推荐
- Redis系统学习
准备写一些关于Redis学习的文章的,发现网上有N多资料有人已经做了总结.查看这些Redis资料,按次序浏览这些Redis资料,相信想学习Redis的同学会很快熟悉: 1.Redis学习手册(目录) ...
- K-good number Theory + 数学问题
这道题是我做CodeTon Round1时的D题,总的来看思路很重要,有几个比较明显的切入问题的角度,要选择到最优的那个: 先看题目: 我们可以发现,这道题的描述一目了然,就是说我们能不能找k个数的和 ...
- JavaScript 事件循环(1) —— 从 setTimeout 说起
转变认知 setTimeout 可能是很多前端工程师爱用的方法,它可以使得一段代码延迟执行,例如: setTimeout(() => console.log('A'), 1000); // 在1 ...
- 序列化与反序列化、def的介绍与快速使用、cbv源码分析、APIView与request对象分析
今日内容概要 序列化与反序列化 def介绍和快速使用 cbv源码流程分析 drf之APIView和Request对象分析 内容详细 1.序列化和反序列化 # api接口开发 最核心最常见的一个过程就是 ...
- 多数据源并且数据库类型不同的情况下PageHelper的使用
一.问题来源 最近开发一个项目需要依赖两个数据源,数据源类型分别为oracle和postgresql,代码中使用com.github.pagehelper分页插件进行分页,代码运行过程中postgre ...
- 为什么使用 Executor 框架比使用应用创建和管理线程好?
为什么要使用 Executor 线程池框架 1.每次执行任务创建线程 new Thread()比较消耗性能,创建一个线程是比较耗 时.耗资源的. 2.调用 new Thread()创建的线程缺乏管理, ...
- SpringBoot使用JdbcTemplate批量保存
@Autowired DataSourceProperties dataSourceProperties; @Autowired ApplicationContext applicationConte ...
- linux发布常用命令
一.linux发布常用命令 //启动Tomcat sh /opt/apache-tomcat-8.5.29/bin/startup.sh //停止tomcat sh /opt/apache-tomca ...
- 如何运行exe文件
有三种方式 第一种:找到所在文件双击运行. 第二种:在命令行里面运行所在文件夹的位置,在输入文件名. 第三种:加到环境变量里面执行
- 利用事件的冒泡特性,为子标签添加Onclick事件
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...