Python QGIS:图层加载失败

Python QGIS: Layer failed to load

我正在尝试从 Python 中的 SHP 文件加载 QGIS 矢量图层。每当我 运行 它时, layer.isValid() 总是 returns False (或在这种情况下为 "Layer is not valid!" )。我不确定我在这里做错了什么,或者我是否错误地实例化了 QgsVectorLayer 变量。

import sys
import os
from qgis.core import *
import matplotlib.pyplot as plt
from matplotlib.path import Path
import matplotlib.patches as patches


QgsApplication.setPrefixPath("/usr", True)
qgs = QgsApplication(sys.argv, False)
qgs.initQgis()

layer=QgsVectorLayer("/Users/ANON/Desktop/MassShapeFiles/MassachusettsTownBoundaries.shp", "MassachusettsTownBoundaries", "ogr")
providers = QgsProviderRegistry.instance().providerList()
for provider in providers:
    print provider
if not layer.isValid():
    print "Layer failed to load!"
provider = layer.dataProvider()

谢谢!

我认为你的路径格式不正确。 查看路径结构我假设你在 windows 系统中,所以你的 windows 路径应该是:

"\Users\ANON\Desktop\MassShapeFiles\MassachusettsTownBoundaries.shp"

使用双反斜杠符号以避免python误解

您在 windows 系统中。但是您已经将 qgis 前缀路径用作 linux 系统。通过打印 QgsApplication.showSettings 从 qgis python 控制台获取正确的 qgis 前缀路径。