QGIS 插件开发Debug教程——使用Pycharm

    科技2025-06-14  19

    参考文章: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的断点调试工具进行正常的调试了。

    Processed: 0.013, SQL: 8