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

Làm thế nào để tạo các gói không gian tên python trong Python 3?


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.

Trên các phiên bản cũ hơn, có một mô-đun tiêu chuẩn, được gọi là pkgutil, với mô-đun này bạn có thể 'nối' các mô-đun vào một không gian tên nhất định. Bạn nên đặt hai dòng đó trong cả hai Gói.

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.