स्टैंड-अलोन PyQGIS स्क्रिप्ट लिखते समय आयात qgis.core के साथ समस्या


18

मैं विंडोज 7 में एक अकेला अकेला अजगर स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो qgis.core और विभिन्न अन्य qgis पुस्तकालयों का उपयोग करता है।

मुझे इस विषय पर एक पुराना सवाल मिला है: पायलगिस का उपयोग करते हुए स्टैंडअलोन पायथन स्क्रिप्ट लिखना? और यहाँ गाइड का उपयोग करके अपनी सलाह का पालन कर रहा था: http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#python-applications

वहाँ सुझाया गया कोड है:

set PYTHONPATH=c:\qgispath\python

के बाद:

set PATH=C:\qgispath;%PATH%

मैंने पाया कि IDLE को "भीख माँगने में सेट" पसंद नहीं था, इसलिए मेरा कोड इस तरह दिखता है:

PYTHONPATH="C:\OSGeo4W64\apps\qgis\python"
PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
import qgis.core

और मुझे मिलता है:

Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core

मैंने उन पथों के प्रत्येक प्रकार की कोशिश की है जिन्हें मैं हटाने के बारे में सोच सकता हूं;% PATH% "अंत में (जो थोड़ा सा शानदार लगता है) लेकिन कोई और जानकारी नहीं पा सका है। क्या किसी के पास कोई विचार है जहां मैं हो सकता है गलत हो रहा?

संपादित करें:

लुइगी पिरेली की टिप्पणी को देखने के बाद मैंने अब कोशिश की है:

>>> PYTHONPATH="C:/OSGEO4~1/apps/qgis/./python\qgis"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:/OSGEO4~1/apps/qgis/./python\qgis\core;%PATH%"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> 

क्या आप अपने प्रश्न के शीर्षक को संशोधित कर सकते हैं जिस तरह से यह आपके सामने आने वाले सटीक मुद्दे को रेखांकित करेगा?
SS_Rebelious

PYTHONPATH को उस मान के रूप में सेट करें जिसे आप QGIS पायथन कंसोल में "qgis" लिख सकते हैं ... मूल्य क्या है? मेरे मामले में: <C: / OSGEO4 ~ 1 / apps / qgis-dev /./ python \ qgis_ init_ .pyc 'से <मॉड्यूल' qgis ' = => मुझे PYTHONPATH पथ में जोड़ना है: "C: /। OSGEO4 ~ 1 / apps / qgis-dev /./ python \ qgis "
लुइगी पिरेली

शीर्षक में संशोधन, धन्यवाद, मैं यह कोशिश करूंगा और प्रश्न के मुख्य भाग में वापस रिपोर्ट
करूंगा

1
फिर भी भाग्य नहीं, मैंने बिना किसी लाभ के PATH और PYTHONPATH के कई क्रमों की कोशिश की।
user24956

जवाबों:


12

यदि आपने OSGeo4W के माध्यम से QGIS स्थापित किया है, तो मैं आपको इस कार्य प्रवाह का पालन करने का सुझाव देता हूं (मैंने इसे विंडोज 7 पर परीक्षण किया है:)

  1. OSGeo4W शेल खोलेंStart->All programs->OSGeo4W->OSGeo4W Shell

  2. पर्यावरण चर सेट करें । मेरा पसंदीदा तरीका OSGeo4W शेल से इस बैट फाइल (2016.11.03 को अपडेट: यह बैट फाइल ) को निष्पादित करना है। जैसा कि आप देख सकते हैं, फ़ाइल पर्यावरण चर को इस तरह सेट करती है:

    set PYTHONPATH=%OSGEO4W_ROOT%\\apps\\qgis\\python
    set PATH=%OSGEO4W_ROOT%\\apps\\qgis\\bin;%PATH%

    बेशक, आपको अपने आप से जांचने की ज़रूरत है कि वे रास्ते आपके ओएस में मौजूद हैं और यदि आवश्यक हो तो उन्हें समायोजित करें।

    तो, .bat फ़ाइल डाउनलोड करें और इसे OSGeo4W शेल से एक्सेस करके और ENTER दबाकर निष्पादित करें।

    यहाँ छवि विवरण दर्ज करें

  3. निम्न विधियों में से एक द्वारा PyQGIS पुस्तकालयों को आयात करें:

    ए। अजगर दुभाषिया दर्ज करें। pythonOSGeo4W शेल में चलाएं और पुस्तकालयों को मैन्युअल रूप से आयात करें।

    यहाँ छवि विवरण दर्ज करें

    ख। पायथन लिपि निष्पादित करें। python my_pyqgis_script.pyOSGeo4W शेल में चलाएं । मैं एक बहुत ही सरल के साथ शुरू करूँगा ।

    यहाँ छवि विवरण दर्ज करें

जियोक्स में कई साल पहले काम प्रवाह (स्पेनिश में) पोस्ट किया गया था और अभी भी काम करता है। जैसा कि आप देख सकते हैं, मैं पायथन लिपि में पर्यावरण चर को शामिल नहीं करता, लेकिन उन्हें OSGeo4W शेल में सेट करता हूं।


नमस्ते! मुझे उस पर संदेह है। क्यों var_entorno_osgeo4w.bat? मैंने यह सभी पंक्तियाँ कीं लेकिन इस भाग में मुझे एक त्रुटि मिलती है। इसके अलावा, मैं इन मदद foruns में पढ़ा है और मैं अभी भी आयात qgis.core त्रुटि (osgeo4w खोल में चला) मिलता है।
बरबड़ा दुतेर्ते

क्योंकि यह उस फ़ाइल का नाम है जो मैं आपको पर्यावरण चर सेट करने के लिए प्रदान कर रहा हूं। तो, आप उस फ़ोल्डर में जाते हैं, जहां .bat फ़ाइल स्थित है (जिन छवियों को आप देखते हैं, वह स्थित हैं C:\dllo) .bat फ़ाइल को फ़ाइल का नाम लिखकर और Enter दबाकर चलाएँ।
जर्मेन कारिलो

मैंने ऊपर दिए गए समाधान का उपयोग करने की कोशिश की - मैंने my_pygis_script.py चलाने और आयात त्रुटि प्राप्त करने का प्रयास किया: कोई भी मॉड्यूल जिसका नाम qgis.core नहीं है। मैं इसे कैसे ठीक करूं?
Kflaw

मैंने pyscripter में qgis.core को आयात करने की भी कोशिश की, और मुझे एक और आयात त्रुटि मिली: कोई भी मॉड्यूल जिसका नाम sip
kflaw

1
अगर मुझे यहाँ सुझाई गई विधि का प्रयास करने पर 'qgis.core' नाम का कोई मॉड्यूल नहीं मिलता है। अगर मैं एक दुभाषिया के रूप में qgis / bin के भीतर python.exe का उपयोग करता हूं, तो जब मैं qgis.core को आयात करने का प्रयास करता हूं तो मुझे 'साइट नाम नहीं मॉड्यूल' त्रुटि मिलती है। मैंने कई घंटे व्यर्थ करने की कोशिश की है।
अलेक्जेंडर

6

मैं अभी भी इसी तरह की समस्या से जूझ रहा हूँ, और OSGeo4W \ bin फ़ोल्डर में एक बैच फ़ाइल देखी है जिसे python-qgis.bat कहा जाता है । यह विंडोज़ 10 पर QGIS 2.18.15 x64 के स्थापित OSGeo4W पैकेज का हिस्सा है।

निष्पादित होने पर, यह बैच फ़ाइल पायथन इंटरप्रेटर को खोलता है। import qgisसफलतापूर्वक भीतर से चलता है।

इस बैच फ़ाइल में लाइन है (जैसा कि जर्मेन कैरिलो ने अपने मूल उत्तर में नोट किया है):

set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python;%PYTHONPATH%

अजगर इंटरप्रेटर लॉन्च होने से ठीक पहले।


यह पर्यावरण चर को मैन्युअल रूप से कॉन्फ़िगर करने के दर्द को दूर करता है, धन्यवाद
हिचम जौहरी

ऐसा लगता है कि काम करना शुरू कर देता है, लेकिन C: \ OSGEO4 ~ 1 \ apps \ Python37 \ lib \ site.py
Donny V.

कारण मुझे वह त्रुटि मिली क्योंकि मैं उस अजगर को नहीं चला रहा था जिसे क्यूजीआईएस उपयोग कर रहा है। अब काम करता है!
डॉनी वी।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.