2017-01-03 1 views
0

Ich versuche eine QGIS-Vektorschicht aus einer SHP-Datei in Python zu laden. Wenn ich es ausführe, gibt layer.isValid() immer False zurück (oder "Layer ist nicht gültig!" In diesem Fall). Ich bin mir nicht sicher, was ich hier falsch mache, oder ob ich die Variable QgsVectorLayer falsch instanziiert habe.Python QGIS: Layer konnte nicht geladen werden

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() 

Vielen Dank!

Antwort

0

Ich denke, Ihr Weg ist missgebildet. Blick Struktur Weg ich nehme an, Sie in einem Windows-System sind, so sollten Sie Ihren Windows-Pfad sein:

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

mit Notation doppelter Backslash Python Missverständnisse

0

Sie in Windows-System sind zu vermeiden. aber du hast qgis prefix path als linux system benutzt. Rufen Sie den richtigen qgis-Präfixpfad von der qgis python-Konsole ab, indem Sie QgsApplication.showSettings drucken.

Verwandte Themen