Menulis skrip yang dapat memanggil Arcpy dan PyQGIS?


11

Saya telah menghabiskan sedikit waktu mencari jawaban yang jelas tentang topik ini dan masih belum dapat benar-benar mencapai tujuan saya mengakses PyQGIS dalam skrip yang berdiri sendiri.

Sebagian jawaban telah diberikan untuk berbagai pertanyaan seperti:

Aplikasi mandiri menggunakan QGIS dan variabel lingkungan

pyQgis dalam skrip yang berdiri sendiri, kesalahan pemuatan vektor

Menulis skrip Python mandiri menggunakan PyQGIS?

Jawaban yang paling umum yang saya temukan disediakan oleh @ gen di sini .

Apa yang saya sangat tertarik adalah bisa menulis skrip yang dapat memanggil Arcpy, dan PyQGIS. Saya telah menetapkan variabel sistem PATH dan PYTHONPATH sesuai dengan dokumentasi buku masak PyQGIS sebagai:

 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\

dan

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

Masing-masing

Saya mulai dengan skrip ini:

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)

Saya mencari untuk menghindari skrip batch yang mengatur pengaturan yang sesuai, tetapi memanggil mereka dari dalam skrip Python. Skenario optimal bagi saya adalah menggunakan IDLE di folder ArcGIS 10.2 untuk menjalankan kode sebelumnya. Saya menggunakan mesin Windows 7 dengan ArcGIS 10.2 dan QGIS 2.01.

Saat ini hasil dari kode ini adalah:

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.

Jawaban:



3

Saya berhasil menggunakan OSGeo4W. Yang harus Anda lakukan adalah mengatur:

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

Dan referensi dalam kode:

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

Itu sama sekali tidak bekerja untuk saya.
SIslam
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.