Arcpy와 PyQGIS를 모두 호출 할 수있는 스크립트 작성?


11

나는이 주제에 대한 명확한 대답을 찾기 위해 꽤 많은 시간을 보냈으며 독립형 스크립트로 PyQGIS에 액세스하려는 내 목표를 실제로 달성 할 수 없었습니다.

답변의 일부는 다음과 같은 다양한 질문에 걸쳐 제공되었습니다.

QGIS 및 환경 변수를 사용하는 독립형 애플리케이션

독립형 스크립트의 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.

답변:


4

PATH 환경 변수에 python dll이있는 폴더가 포함되어 있는지 확인해야합니다. 일반적으로 [QGIS_install_folder] \ apps \ qgis \ bin 아래에 있습니다. 예 :

C:\Program Files (x86)\QGIS Valmiera\apps\qgis\bin

또한 Windows에서 QGIS와 함께 사용하고 여전히 arcpy를 사용하도록 PyScripter 구성을 살펴보십시오. 지금은 오래된 게시물이지만 설정해야 할 사항에 대한 기본 아이디어를 제공해야합니다.


3

OSGeo4W를 성공적으로 사용하고 있습니다. 당신이해야 할 일은 설정됩니다 :

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

코드 참조 :

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

그것은 나를 위해 전혀 작동하지 않습니다.
SIslam
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.