मैंने इस विषय पर एक स्पष्ट उत्तर की तलाश में काफी समय बिताया है और अभी भी एक अकेले स्क्रिप्ट में PyQGIS तक पहुंचने के अपने लक्ष्य को वास्तव में पूरा करने में असमर्थ रहा है।
कई अलग-अलग सवालों के जवाब के कुछ हिस्सों को प्रदान किया गया है:
QGIS और पर्यावरण चर का उपयोग करके स्टैंडअलोन अनुप्रयोग
pyQgis स्टैंड में अकेले स्क्रिप्ट, वेक्टर लोडिंग त्रुटि
PyQGIS का उपयोग करके स्टैंडअलोन पायथन स्क्रिप्ट लिखना?
सबसे अधिक उत्तर जो मुझे मिला है वह यहाँ @gene द्वारा प्रदान किया गया था ।
मैं विशेष रूप से जिस चीज में दिलचस्पी रखता हूं, वह ऐसी स्क्रिप्ट लिखने में सक्षम हो रही है, जो अर्की, और पायक्यूजीस दोनों पर कॉल कर सकती हैं। मैंने PATH और PYTHONPATH दोनों ही सिस्टम वेरिएबल्स को PyQGIS कुकबुक डॉक्यूमेंटेशन के अनुसार सेट किया है:
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)
मैं बैच स्क्रिप्ट से बचने के लिए देख रहा हूं जो उचित सेटिंग्स सेट करता है, बल्कि उन्हें पायथन स्क्रिप्ट के अंदर से बुलाता है। मेरे लिए इष्टतम परिदृश्य आर्किग 10.2 फ़ोल्डर में IDLE का उपयोग पूर्ववर्ती कोड को चलाने के लिए होगा। मैं आर्कजीआईएस 10.2 और क्यूजीआईएस 2.01 के साथ विंडोज 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.