क्रॉस-प्रोजेक्ट मॉड्यूल शेयरिंग के लिए नेमस्पेस पैकेज को परिभाषित करना
पायथन में, नेमस्पेस पैकेज कई परियोजनाओं में संबंधित कोड को संरचित करने का एक साधन प्रदान करते हैं। नेमस्पेस पैकेज को परिभाषित करने के लिए, नेमस्पेस पैकेज निर्देशिकाओं के भीतर __init__.py फ़ाइलों को रखने से बचना आवश्यक है। pkgutil.extend_path() या pkg_resources.declare_namespace() का उपयोग करके स्पष्ट घोषणा। हालाँकि, पायथन 3.3 के बाद से, अंतर्निहित नेमस्पेस पैकेज पेश किए गए, जिससे बिना किसी घोषणा के उनके निर्बाध निर्माण को सक्षम किया गया। , एक पदानुक्रमित संरचना की अनुमति देता है। नेमस्पेस पैकेज के भीतर एक मॉड्यूल आयात करते समय, पायथन मूल पैकेज के
पथके भीतर खोज करता है, खोज को मानक sys.path से आगे बढ़ाता है।
pkgutil.extend_path() बनाम .pkg_resources.declare_namespace()जबकि pkgutil.extend_path() और दोनों pkg_resources.declare_namespace() का उपयोग पहले नेमस्पेस पैकेजों को परिभाषित करने के लिए किया जाता था, पूर्व को अंतर्निहित नेमस्पेस पैकेजों के साथ भविष्य-प्रूफ संगतता के लिए अनुशंसित किया जाता है।
उदाहरण संरचनापर विचार करें निम्नलिखित निर्देशिका संरचना:
पैकेज-1/नेमस्पेस/ पैकेज-2/नेमस्पेस/ ├── पथ1 │ └── पैकेज │ ├── __init__.py │ └── foo.py ├── पथ2 │ └── पैकेज │ └── bar.py └── पथ3 └── पैकेज ├── __init__.py └── baz.py__init__.py फ़ाइलों में आवश्यक विस्तारित_पथ घोषणाओं के साथ, namespace.foo, namespace.bar, और namespace.baz जैसे सभी आयात सफल होंगे।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3