ใน Python แพ็คเกจเนมสเปซช่วยให้คุณกระจายโค้ด Python ในหลายโครงการ สิ่งนี้มีประโยชน์เมื่อคุณต้องการเผยแพร่ไลบรารีที่เกี่ยวข้องเป็นการดาวน์โหลดแยกต่างหาก ตัวอย่างเช่น ด้วยไดเร็กทอรี Package-1 และ Package-2 ใน PYTHONPATH
Package-1/namespace/__init__.py Package-1/namespace/module1/__init__.py Package-2/namespace/__init__.py Package-2/namespace/module2/__init__.py the end-user can import namespace.module1 and import namespace.module2.
บน Python 3.3 คุณไม่ต้องทำอะไรเลย เพียงแค่ไม่ใส่ __init__.py ลงในไดเร็กทอรีแพ็คเกจเนมสเปซของคุณและมันจะใช้งานได้ นี่เป็นเพราะ Python 3.3 แนะนำแพ็คเกจเนมสเปซโดยนัย
ในเวอร์ชันเก่า จะมีโมดูลมาตรฐานที่เรียกว่า pkgutil ซึ่งคุณสามารถ 'ผนวก' โมดูลกับเนมสเปซที่กำหนดได้ คุณควรใส่สองบรรทัดนั้นในแพ็คเกจทั้งสอง
1/namespace/__init__.py and Package-2/namespace/__init__.py: from pkgutil import extend_path __path__ = extend_path(__path__, __name__)
สิ่งนี้จะเพิ่มไปยังไดเร็กทอรีย่อยทั้งหมดของ __path__ ของแพ็คเกจบน sys.path ที่ตั้งชื่อตามแพ็คเกจ หลังจากนี้คุณสามารถแจกจ่าย 2 แพ็คเกจแยกกันได้