Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để phát triển các chương trình với Python Namespaced Packages?


Trong Python, một gói không gian tên cho phép bạn lan truyền mã Python giữa một số dự án. Điều này rất hữu ích khi bạn muốn phát hành các thư viện liên quan dưới dạng các bản tải xuống riêng biệt. Ví dụ, với các thư mục Package-1 và Package-2 trong 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.

Trên Python 3.3, bạn không phải làm bất cứ điều gì, chỉ cần không đặt bất kỳ __init__.py trong các thư mục gói không gian tên của bạn và nó sẽ hoạt động. Điều này là do Python 3.3 giới thiệu các gói không gian tên ngầm định.

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__)

Điều này sẽ thêm vào __path__ của gói tất cả các thư mục con của các thư mục trên sys.path được đặt tên theo gói. Sau đó, bạn có thể phân phối 2 gói riêng biệt và tận dụng các gói không gian tên miền python.