ArcpyとPyQGISの両方を呼び出すことができるスクリプトを作成しますか?


11

私はこのトピックの明確な答えを探すのにかなりの時間を費やしましたが、スタンドアロンスクリプトでPyQGISにアクセスするという目標を実際に達成することができませんでした。

回答の一部は、次のような多くの異なる質問にわたって提供されています。

QGISと環境変数を使用したスタンドアロンアプリケーション

スタンドアロンスクリプトのpyQgis、ベクトルロードエラー

PyQGISを使用してスタンドアロンPythonスクリプトを作成しますか?

私が見つけた最も微妙な答えは、ここ @geneによって提供されまし

私が特に興味を持っているのは、ArcpyとPyQGISの両方を呼び出すことができるスクリプトを作成できることです。PyQGISクックブックのドキュメントに従って、PATHとPYTHONPATHの両方のシステム変数を次のように設定しました。

 C:\OSGeo4W\apps\qgis\bin,%PATH%;C:\Python27\ArcGIS10.2\Lib\site-packages\PyQt4;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\

そして

C:\OSGeo4W\apps\qgis\python; C:\OSGeo4W\apps\Python27\Lib\site-packages

それぞれ。

私はこのスクリプトから始めています:

from qgis.core import *

QgsApplication.setPrefixPath("C:\OSGeo4W\bin\qgis.bat", True)
QgsApplication.initQgis()
# or your solution
# read a shapefile 
layer = QgsVectorLayer('H:\DATA\Airfields_AB.shp', 'Airfields', 'ogr')
layer.isValid()
True
# loop through layer 
for elem in layer.getFeatures():
    geom= elem.geometry()
    attr =elem.attributes()
    (processing)

適切な設定を設定するバッチスクリプトを避け、Pythonスクリプト内から呼び出すようにします。私にとって最適なシナリオは、ArcGIS 10.2フォルダーのIDLEを使用して上記のコードを実行することです。ArcGIS 10.2およびQGIS 2.01でWindows 7マシンを使用しています。

現在、このコードの結果は次のとおりです。

Traceback (most recent call last):
  File "F:\Users\...\PyQGIS_Test_01.py", line 1, in <module>
    from qgis.core import *
ImportError: DLL load failed: The specified module could not be found.

回答:



3

OSGeo4Wを正常に使用しています。設定が必要です:

PATH=C:\OSGeo4W\apps\qgis\bin;%PATH%

コード内の参照:

QgsApplication.setPrefixPath("C:\OSGeo4W\apps\qgis", True)

私にはまったく機能しません。
イスラム教
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.