ऐसी स्क्रिप्ट्स लिखना जो अर्की और PyQGIS दोनों पर कॉल कर सकते हैं?


11

मैंने इस विषय पर एक स्पष्ट उत्तर की तलाश में काफी समय बिताया है और अभी भी एक अकेले स्क्रिप्ट में 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.

जवाबों:


4

आपको यह सुनिश्चित करने की आवश्यकता होगी कि आपके PATH परिवेश चर में वह फ़ोल्डर शामिल है जहां अजगर dlls स्थित हैं। आमतौर पर [QGIS_install_folder] \ apps \ qgis \ bin उदा के अंतर्गत

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

अब पुराने पोस्ट पर QGIS (और अभी भी चापलूसी का उपयोग करने के लिए) का उपयोग करने के लिए PyScripter को कॉन्फ़िगर करने पर एक नज़र डालें , लेकिन आपको सेटअप करने की आवश्यकता का मूल विचार देना चाहिए


3

मैं सफलतापूर्वक OSGeo4W का उपयोग कर रहा हूं। आपको जो करना है वह सेट किया गया है:

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

और कोड में संदर्भ:

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

यह मेरे लिए बिल्कुल भी काम नहीं करता है।
SIslam
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.