मैं अजगर स्क्रिप्ट से अपनी स्क्रिप्ट आयात क्यों नहीं कर सकता?


9

मैं qgis अजगर कंसोल के साथ काम कर रहा हूँ। मैं आमतौर पर अपनी सभी पाइथन लिपियों को ~ / Scripts / python में स्टोर करता हूं। मैंने अपने .bashrc में PYTHONPATH को ~ / Scripts / पाइथन में सेट किया है। हालाँकि, मैं QGIS के अंदर कंसोल से अपने सॉर्ट्स आयात करने का प्रबंधन नहीं कर सकता।

जब मैं Create_Figures_2D नामक स्क्रिप्ट आयात करने का प्रयास करता हूं तो यहां मेरी त्रुटि है

import Create_Figures_2D
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/qgis/utils.py", line 309, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
ImportError: No module named Create_Figures_2D

पाइगिस के लिए मैं PYTHONPATH कैसे स्थापित करूं?


1
~/Scripts/pythonPATH को जोड़ने की कोशिश करें जो आम तौर पर मेरे लिए काम करता है। इसके साथ जांचेंimport os; os.path
नाथन डब्ल्यू

जवाबों:


11

पायथन कंसोल में निम्नलिखित चलाएं:

import sys
sys.path

देखें कि आपकी PYTHONPATH प्रविष्टि सूचीबद्ध है या नहीं। मैं अनुमान नहीं लगा रहा हूँ, क्योंकि उस पर्यावरण चर शायद क्यूजीआईएस के चल रहे पायथन के लिए उपलब्ध नहीं है।

कंसोल के sys.path में अपनी स्क्रिप्ट फ़ोल्डर जोड़ने के लिए एक नियमित एपेंड करें ():

sys.path.append('~/Scripts/python')

फिर आपको उस कंसोल सत्र के लिए अपने मॉड्यूल को वहां से आयात करने में सक्षम होना चाहिए। मैं आपके उपयोगकर्ता के पूर्ण गृह पथ पर ~ का विस्तार करने की सलाह देता हूं (यह सुनिश्चित नहीं है कि पायथन करता है ~ विस्तार)।

संपादित करें : ~ विस्तार sys.path (मैक पर, कम से कम) द्वारा समर्थित नहीं लगता है।

क्यूजीआईएस का पायथन कंसोल पायथन मॉड्यूल, 'कंसोलहोम' द्वारा बनाया गया है। इसलिए, यदि आप अपने कस्टम पथ को उसके sys.path में अधिक स्थायी रूप से जोड़ना चाहते हैं, कंसोलहोम फ़ाइल को संपादित करें और मॉड्यूल के बाद sys.path.append ('पाथ / टू / माय / स्क्रिप्ट') स्टेटमेंट जोड़ें। आयात अनुभाग।

कंसोलहोम यहां स्थित है (मैक के लिए, KyngChaos.com QGIS पैकेज का उपयोग करके ):

/Applications/QGIS.app/Contents/Resources/python/qgis/console.py

बेशक, यह एक हैक है जिसे मिटा दिया जाएगा और QGIS.app अपडेट पर फिर से बनाना होगा।

चल रहे QGIS पायथन दुभाषिया के sys.path के लिए कोई भी समायोजन अन्य प्लगइन्स के लिए भी उपलब्ध है।

एक सुरक्षित विकल्प एक सरल, विकास PyQGIS प्लगइन बनाने के लिए हो सकता है जो लोड करता है और जब भी आप चाहते हैं तब sys.path.append () करता है। यह प्लगइन अनलोड () पर sys.path से उस रास्ते को भी हटा सकता है। मैंने यह परीक्षण नहीं किया है कि इस तरह के प्लगइन का sys.path समायोजन पहले से लोड किए गए कंसोल में उपलब्ध होगा (मैं अनुमान लगा रहा हूं, यह होगा)।


आपकी हैक मेरे लिए अब तक ठीक काम कर रही है। बहुत बहुत धन्यवाद। कोई ubuntu 12.04, फ़ाइल /usr/share/pysared/qgis/console.py
Renaud

अति उत्कृष्ट! वैसे, मुझे अपने QGIS को विंडोज 7 पर पुनः आरंभ करने की आवश्यकता है ताकि पायथन कंसोल को संलग्न मार्ग से अवगत कराया जा सके।
डिर्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.