"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन में क्रॉस-प्रोजेक्ट मॉड्यूल शेयरिंग के लिए नेमस्पेस पैकेज कैसे परिभाषित करें?

पायथन में क्रॉस-प्रोजेक्ट मॉड्यूल शेयरिंग के लिए नेमस्पेस पैकेज कैसे परिभाषित करें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:342

How to Define Namespace Packages for Cross-Project Module Sharing in Python?

क्रॉस-प्रोजेक्ट मॉड्यूल शेयरिंग के लिए नेमस्पेस पैकेज को परिभाषित करना

पायथन में, नेमस्पेस पैकेज कई परियोजनाओं में संबंधित कोड को संरचित करने का एक साधन प्रदान करते हैं। नेमस्पेस पैकेज को परिभाषित करने के लिए, नेमस्पेस पैकेज निर्देशिकाओं के भीतर __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 जैसे सभी आयात सफल होंगे।

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729575800 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3