나는이 주제에 대한 명확한 대답을 찾기 위해 꽤 많은 시간을 보냈으며 독립형 스크립트로 PyQGIS에 액세스하려는 내 목표를 실제로 달성 할 수 없었습니다.
답변의 일부는 다음과 같은 다양한 질문에 걸쳐 제공되었습니다.
PyQGIS를 사용하여 독립형 Python 스크립트를 작성하십니까?
내가 찾은 가장 힘든 답변은 @gene here 에서 제공했습니다 .
특히 관심이있는 것은 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.