VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点

近期利用VSCode\PyCharm+PyQGIS进行插件开发,现将要点总结一下:

一、VSCode,我没有配置成功,主要是最后一个阶段调试的时候老是不成功。以后会持续关注。但是有几个要点:

1、VSCode+PyQIS开发,智能提示的设置,见下面的文章。网上找不到相关的文章的。

写文章-CSDN创作中心

2、配置文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Remote Attach",
            "port": 5678,
            "host": "localhost",
            "request": "attach",
            "type": "python",
            //"processId": "${command:pickProcess}",
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}", // path to your plugin where you are developing
                    "remoteRoot": "C:\\Users\\...\\AppData\\Roaming\\QGIS\\QGIS3\\profiles\\default\\python\\plugins\\your_plugin" // path to where the QGIS plugin folder lives 
                }
            ]
        }
    ]
}

我觉得我应该是pathmappings这里设置的问题。

VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点_第1张图片

VSCode要启动一会(大概是加载插件的缘故吧),智能提示才能开始启效果。

二、PyCharm,我配置成功了,要注意一下顺序:

1、QGIS中要安装的插件:plugin reloader、plugin builder

2、QGIS中插件的所在目录,建议把工程直接创建在这里:

C:\Users\用户名\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins

3、PyCharm 解释程序配置,如果不是lts版本的qgis,配置上有所不同:

VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点_第2张图片

VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点_第3张图片

 4、服务配置:

VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点_第4张图片

 VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点_第5张图片

3、插件安装:

1)添加包源:

VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点_第6张图片

 VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点_第7张图片

应用后再移除,然后刷新,就可以了。一定是应用后再移除,然后刷新。 

2)安装包pydevd-pycharm ,注意版本要与刚才服务的版本对应,这里我安装的是232.8660.197

VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点_第8张图片

4、编写代码:

可以用QGIS3.32.1安装时自带的QTDesinger来设计。1)先用plugin builder创建,2)然后用QTDesinger来修改界面。

然后编写代码:

    def run(self):
        """Run method that performs all the real work"""

        # Create the dialog with elements (after translation) and keep reference
        # Only create GUI ONCE in callback, so that it will only load when the plugin is started
        if self.first_start == True:
            self.first_start = False
            self.dlg = MyNameDialog()
            self.dlg.button_box.clicked.connect(self.okclick)

self.dlg.button_box.clicked.connect(self.okclick)这句是给界面上的按键添加方法。

方法这样写:

    def okclick(self):
        pydevd_pycharm.settrace('localhost', port=53100, stdoutToServer=True, stderrToServer=True)
        aa = "cccc"
        print("MyName")

        # 获取当前项目
        project = QgsProject.instance()
        layers = project.mapLayers()

        for layer_id, layer in layers.items():
            print(layer.name())

注意前面需要导入包:

import pydevd_pycharm

from qgis.PyQt.QtCore import Qt
from qgis.PyQt.QtGui import QIcon
from qgis.core import (
    QgsProject,
    QgsVectorLayer,
    QgsMapLayerType,
)
import pydevd_pycharm
pydevd_pycharm.settrace('localhost', port=53100, stdoutToServer=True, stderrToServer=True)
这两句是需要的,这样下能调试,查看变量。

然后打断点,点debugger。

VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点_第9张图片

 然后在界面上运行插件:

VSCode\PyCharm23.2+PyQGIS插件开发配置相关要点_第10张图片

修改了代码后编译后,一定要运行一下reloader(上图后面的框),然后点击你的插件。

特别注意:

如果仅仅是编辑一段代码,那么直接用qt自带的python编辑器就行。这时好像是不能调试的。

最好的做法是,创建一个python脚本,用编辑器打开,在pycharm编写,然后它会同时同步到qgis的编辑器中。在qgis中运行看效果,这个过程很折磨人哦。

如果要能调试,就必须要按照上面的步骤编写插件。

你可能感兴趣的:(Python,vscode,pycharm,ide)