QGIS插件开发环境配置(小白版详细)

QGIS插件开发环境配置(详细)

QGIS插件开发包括在自带的Python Console里面写脚本和进行独立的QGIS应用程序开发。本文涉及到的插件开发为后者。

环境选型:

  • QGIS 3.10.13
  • IDE:vscode(QGIS插件开发的官网上有IDE的推荐,但本人用习惯了vscode,毕竟好看又轻量)
  • Qt Creator

1 python环境配置

在这一块我走了一些弯路:

· 单独安装了python环境,但其实QGIS本身就自带一个python环境,只需要手动添加进环境变量中就可以了。

1.1 添加环境变量

1、环境变量的添加就是右键【我的电脑】——点击【属性】——点击【高级系统设置】——点击【环境变量】——双击【Path】然后添加
在这里插入图片描述
如图,我将QGIS安装在D盘,涉及到的路径是以上的4个,大家可以在自己安装QGIS的文件夹里找到对应的路径。(这里进一步说明,不需要自己重新装一个python环境!!)

2、完成【Path】的添加之后,还需要添加环境变量PYTHONPATHPYTHONHOME
在这里插入图片描述
这两个环境变量装过python环境的人应该不陌生,如果之前装过的话就直接在里面添加QGIS自带的python环境相关的路径就可以。

PYTHONPATH
在这里插入图片描述
PYTHONHOME
在这里插入图片描述
※ATTENTION※
请务必将刚才添加的QGIS的python的各种路径全部上移到Path、PYTHONPATH、PYTHONHOME三个变量路径列表的最上方,以免发生多个python环境冲突的问题!!!

以上,基本的环境配置就完成了,我的QGIS的python是3.7,打开cmd,输入python,得到如下就说明环境配好了。
在这里插入图片描述

1.2 vscode的python环境

我是新装的vscode,因此没有python的debug环境,需要在Extentions里面搜索【python】然后下载相关插件才行。
然后,如果说你的电脑上有多个python环境,那么在vscode里需要选择QGIS对应的那个python才行。(在python:select interpreter里面选则)
在这里插入图片描述
然后,当你看到你输入的import qgis.core不再是白色的时候,就说明能够找到qgis.core这个库了。
在这里插入图片描述
※ATTENTION※
个人按照以上操作完成后运行import qgis.core这句话是没有出现问题的,但是在探索的阶段也出现过各种问题:

  • ImportError: DLL load failed while importing QtCore
    这个问题在我把该添加的环境变量添加之后,并且给vscode选好对应的python编译器之后就没什么问题了。

  • AttributeError: module 'importlib._bootstrap' has no attribute '_w_long
    这个问题我参考的链接在这里!!!🔗,概括来说就是各种python环境互相冲突了,我最后在电脑上只留下了QGIS一个python环境。

2 创建一个python插件模板

想要了解QGIS python插件开发具体涉及到的各种文件,可以去官网的cookbook看看COOKBOOK🔗,涉及到的文件比较多,放一个官网介绍的插图。
在这里插入图片描述
一个个的写会比较麻烦,好在有大佬写了一个Plugin Builder 3这样一个QGIS的插件,可以可视化的构建开发插件需要的各种文件!
在这里插入图片描述
按照相应步骤一步步的next下去就好了,特别方便。具体可以参照《初探QGIS插件开发》🔗这篇博客,很详细了!

一路点击【next】,到最后【generate】,会有一个⚠弹窗:
在这里插入图片描述
意思就是没找到你的pyrcc5.exe,不能给你编译插件。有些地方说这个不重要可以忽略,但是暂时的,后面还是需要用到,等下来说这个问题。

※ATTENTION※
在这里插入图片描述
在创建插件的第一步,填写插件名称(红框圈出的4个),千万不要用test这个名字!!不然你在添加自己的插件过程中一定会出现这个问题:
在这里插入图片描述
究其原因:你的插件里面有名字冲突的文件存在。

这是一个插件的文件夹目录(部分),可以看到,它本身自带一个“test”文件夹,所以如果你还把插件命名为test,就很容易出现没法import的问题。(没理解的话,就记得别命名为test就行)
在这里插入图片描述

3 添加你的插件到QGIS中

按照以上的流程,你已经获得了一个完整的插件,可以尝试将其放进QGIS里试一试。

1.1 将插件复制到活动配置目录

在这里插入图片描述
打开活动配置目录,将插件复制到目录下【python】——【plugins】文件夹里面。

重启 QGIS,点击【插件】——【管理并安装插件】——【已安装】,在你的插件前面打勾✔。

这个时候会出现一个问题:
在这里插入图片描述
这就是因为你还没构建你的插件。在构建之前,你的插件目录里只会有一个
在这里插入图片描述
qrc文件,但是在构建之后
在这里插入图片描述
而涉及到构建,则必须涉及到刚才说的pyrcc5.exe了。

1.2 构建你的插件

在这一块,你可以首先在cmd里面输入pyrcc5查看一下能不能找到这玩意。本人就没有找到,尝试过很多办法都没成功。打开QGIS python37的文件夹,里面只有两个bat文件。
在这里插入图片描述
一开始尝试往里面添加pyrcc5.exe文件,参考的博客在这里!!🔗告诉你几种添加这个exe文件的方法。本人都没成功。

解决方法:在插件目录里添加一个compile.bat文件,文件内容如下:

@echo off
call "C:\OSGeo4W64\o4w_env.bat"   //你的这几个文件的路径,在QGIS的bin目录下,注意路径不能包含空格
call "C:\OSGeo4W64\qt5_env.bat"
call "C:\OSGeo4W64\py3_env.bat"

@echo on
pyrcc5 -o resources.py resources.qrc  //官网的构建方案

双击运行bat文件,构建成功,resources.py出现啦!!

最后再次重启QGIS,就能将自己的插件打开了:
在这里插入图片描述

以上!

QGIS是一个开源的地理信息系统软件,它提供了一个Python API,可以嵌入到Python脚本中进行自动化和扩展。 要在Python中嵌入QGIS逻辑,您需要按照以下步骤进行: 1. 安装QGIS软件:首先,您需要下载并安装QGIS软件。您可以从QGIS官方网站下载适用于您的操作系统的安装程序。 2. 设置环境变量:在您的Python脚本中,需要设置正确的环境变量,以便让Python找到QGIS库和模块。在脚本的开头添加以下代码: ```python import sys sys.path.append('/path/to/qgis/python') ``` 将`/path/to/qgis/python`替换为您安装QGIS的路径。通常,在Windows上,它位于`C:\Program Files\QGIS\python`或`C:\OSGeo4W64\apps\qgis\python`。在Linux上,可以根据您的安装方式找到对应的路径。 3. 初始化QGIS应用程序:在您的脚本中,需要初始化QGIS应用程序对象,并加载所需的插件和设置。添加以下代码: ```python from qgis.core import QgsApplication, QgsVectorLayer QgsApplication.setPrefixPath('/path/to/qgis', True) # 设置QGIS安装路径 qgs = QgsApplication([], False) # 初始化QGIS应用程序 qgs.initQgis() # 初始化QGIS # 加载所需的插件 qgs.installQgisPlugin('plugin_name') # 执行其他QGIS相关的操作 # ... qgs.exitQgis() # 关闭QGIS应用程序 ``` 将`/path/to/qgis`替换为您安装QGIS的路径。 4. 执行其他QGIS相关操作:在初始化QGIS应用程序后,您可以在您的Python脚本中执行各种QGIS相关的操作,例如加载矢量图层、进行空间分析、创建地图等。您可以使用QGIS提供的Python API文档来了解可用的功能和方法。 ```python layer = QgsVectorLayer('/path/to/shapefile.shp', 'Layer Name', 'ogr') # 加载矢量图层 if layer.isValid(): # 执行其他操作,例如进行空间查询、渲染地图等 # ... ``` 以上就是在Python中嵌入QGIS逻辑的基本步骤。您可以根据您的需求和场景,进一步扩展和调整代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值