2017-01-03 14 views
0

PythonでSHPファイルからQGISベクターレイヤーをロードしようとしています。私がそれを実行するたびに、layer.isValid()は常にFalseを返します(またはこの場合は "Layer is not valid!")。私はここで間違っているか、QgsVectorLayer変数を正しくインスタンス化していないかどうかはわかりません。Python QGIS:レイヤーの読み込みに失敗しました

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

ありがとうございます!

答えて

0

あなたのパスが不正です。

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

ダブルバックスラッシュ表記でPythonの誤解に

0

を避けるために、Windowsシステムにあります。 はパス構造を見ると、私はあなたの窓のパスがなければなりませんので、あなたは、Windowsシステムであると仮定します。 qgisプレフィックスパスをLinuxシステムとして使用しています。 qgis pythonコンソールからQgsApplication.showSettingsを印刷して、適切なqgisプレフィックスパスを取得します。

関連する問題