나는이 주제에 대한 명확한 대답을 찾기 위해 꽤 많은 시간을 보냈으며 독립형 스크립트로 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.
답변
PATH 환경 변수에 python dll이있는 폴더가 포함되어 있는지 확인해야합니다. 일반적으로 [QGIS_install_folder] \ apps \ qgis \ bin 아래에 있습니다. 예 :
C:\Program Files (x86)\QGIS Valmiera\apps\qgis\bin
또한 Windows에서 QGIS와 함께 사용하고 여전히 arcpy를 사용하도록 PyScripter 구성을 살펴보십시오. 지금은 오래된 게시물이지만 설정해야 할 사항에 대한 기본 아이디어를 제공해야합니다.
답변
OSGeo4W를 성공적으로 사용하고 있습니다. 당신이해야 할 일은 설정됩니다 :
PATH=C:\OSGeo4W\apps\qgis\bin;%PATH%
코드 참조 :
QgsApplication.setPrefixPath("C:\OSGeo4W\apps\qgis", True)