शीर्ष-स्तरीय पैकेज से परे सापेक्ष आयात
बहु-स्तरीय पायथन पैकेज के भीतर सापेक्ष आयात का प्रयास करते समय, पैकेज निर्देशिका से मॉड्यूल चलाना इसके परिणामस्वरूप "ValueError: शीर्ष-स्तरीय पैकेज से परे सापेक्ष आयात का प्रयास" त्रुटि हो सकती है। प्रभावी पैकेज प्रबंधन के लिए इस त्रुटि के पीछे के कारण को समझना महत्वपूर्ण है।
त्रुटि इसलिए होती है क्योंकि पायथन इस बात का रिकॉर्ड नहीं रखता है कि पैकेज कहां से लोड किए गए हैं। मॉड्यूल को "पायथन -एम टेस्ट_ए.टेस्ट" के रूप में निष्पादित करना अनिवार्य रूप से पायथन को सूचित करता है कि टेस्ट_ए.टेस्ट एक पैकेज के भीतर स्थित नहीं है (इसके पैकेज/टेस्ट_ए में रहने के बावजूद)। नतीजतन, "..A आयात फू" का प्रयास अमान्य हो जाता है क्योंकि पायथन को test_A के बड़े पैकेज का हिस्सा होने का ज्ञान नहीं है।
इसके विपरीत, "python -m package.test_A.test" का उपयोग करने से पदानुक्रमित संरचना सुरक्षित रहती है और "from ..A आयात foo" को सफलतापूर्वक हल करने की अनुमति देता है। यह इस तथ्य को सटीक रूप से दर्शाता है कि test_A लोड किए गए पैकेज "पैकेज" के भीतर एक चाइल्ड डायरेक्टरी है। हालाँकि, "__init__.py" फ़ाइल का उपयोग करके निर्देशिकाओं को पैकेज के रूप में स्पष्ट रूप से घोषित करके और मॉड्यूल आयात करते समय पायथन के पैकेज लुकअप तंत्र का पालन करके इस सीमा को कम किया जा सकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3