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.