在QGIS中经常将数据作为内存图层读取,类似以下代码
layer = QgsVectorLayer(type + '?crs=EPSG:' + str(epsg) + fields, layer_name, 'memory')
当QGIS正常安装时,脚本运行正常。但是,在独立环境下(绿色环境下),会无法构建图层。
这个问题通常由于无法找到QGIS环境目录导致的。需要设置QGIS Prefix Path。
Linux环境下,Prefix Path设置为/usr
,因为安装的QGIS插件目录在这里/usr/lib/qgis/plugins
。
Windows环境下,Prefix Path设置为C:\\Program Files\\QGIS 3.x\\apps\\qgis-ltr\\
,因为QGIS插件目录通常为
C:\\Program Files\\QGIS 3.x\\apps\\qgis-ltr\\plugins\\
。
设置QGIS Prefix Path示例代码如下:
QgsApplication.setPrefixPath("/path/to/qgis/installation", True)
qgs = QgsApplication([], False)
qgs.initQgis()