पायथन में, एक नेमस्पेस पैकेज आपको कई प्रोजेक्ट्स में पायथन कोड फैलाने की अनुमति देता है। यह तब उपयोगी होता है जब आप संबंधित लाइब्रेरीज़ को अलग-अलग डाउनलोड के रूप में जारी करना चाहते हैं। उदाहरण के लिए, PYTHONPATH में Package-1 और Package-2 डायरेक्टरीज़ के साथ,
Package-1/namespace/__init__.py Package-1/namespace/module1/__init__.py Package-2/namespace/__init__.py Package-2/namespace/module2/__init__.py अंतिम उपयोगकर्ताimport namespace.module1औरimport namespace.module2कर सकता है।
पायथन 3.3 पर, आपको कुछ भी करने की आवश्यकता नहीं है, बस अपने नेमस्पेस पैकेज डायरेक्टरीज़ में कोई __init__.py न रखें और यह बस काम करेगा। ऐसा इसलिए है क्योंकि पायथन 3.3 इम्प्लिसिट नेमस्पेस पैकेज पेश करता है।
पुराने संस्करणों पर, एक स्टैंडर्ड मॉड्यूल है, जिसे pkgutil कहा जाता है, जिसके साथ आप किसी दिए गए नेमस्पेस में मॉड्यूल्स को 'अपेंड' कर सकते हैं। आपको उन दो लाइनों को दोनों पैकेजेस में रखना चाहिए।
Package-1/namespace/__init__.py और Package-2/namespace/__init__.py: from pkgutil import extend_path __path__ = extend_path(__path__, __name__)
यह पैकेज के __path__ में sys.path पर पैकेज के नाम पर नामित डायरेक्टरीज़ के सभी सबडायरेक्टरीज़ को जोड़ देगा। इसके बाद आप 2 पैकेजेस को अलग-अलग डिस्ट्रीब्यूट कर सकते हैं।