Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะพัฒนาโปรแกรมด้วย Python Namespaced Packages ได้อย่างไร?


ใน 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 แนะนำแพ็คเกจเนมสเปซโดยนัย

On older versions, there's a standard module, called pkgutil, with which you can 'append' modules to a given namespace. You should put those two lines in both Package-1/namespace/__init__.py and Package-2/namespace/__init__.py:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

สิ่งนี้จะเพิ่มไปยังไดเร็กทอรีย่อยทั้งหมดของ __path__ ของแพ็คเกจบน sys.path ที่ตั้งชื่อตามแพ็คเกจ หลังจากนี้ คุณสามารถแจกจ่าย 2 แพ็คเกจแยกกันและใช้ประโยชน์จากแพ็คเกจเนมสเปซของ python