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

Tiện ích mở rộng gói bằng Python

Khi bạn muốn thêm vào đường dẫn tìm kiếm mô-đun cho một gói cụ thể và làm việc với các tài nguyên có trong một gói, bạn cần sử dụng mô-đun pkgutil từ thư viện Python. Nó bao gồm các chức năng để thay đổi các quy tắc nhập cho các gói Python. Cũng có thể tải các tài nguyên không phải mã từ các tệp được phân phối trong một gói.

expand_path (đường dẫn, tên)

Mở rộng đường dẫn tìm kiếm cho các mô-đun bao gồm một gói. Mục đích sử dụng là đặt mã sau vào __init__.py

của gói
import pkgutil
__path__ = pkgutil.extend_path(__path__, __name__)

expand_path () quét sys.path để tìm các thư mục bao gồm một thư mục con được đặt tên cho gói được cung cấp làm đối số thứ hai. Danh sách các thư mục được kết hợp với giá trị đường dẫn được truyền làm đối số đầu tiên và được trả về dưới dạng một danh sách duy nhất, thích hợp để sử dụng làm đường dẫn nhập gói.

find_loader (tên đầy đủ): Truy xuất trình tải mô-đun cho tên đầy đủ đã cho.

get_importer (path_item): Truy xuất một công cụ tìm kiếm cho path_item đã cho.

get_loader (module_or_name)

Nhận một đối tượng trình tải cho module_or_name.

iter_importers (fullname =''): Đối tượng công cụ tìm lợi nhuận cho tên mô-đun đã cho.

iter_modules (path =None, prefix =''): Mang lại ModuleInfo cho tất cả các mô-đun con trên đường dẫn hoặc, nếu đường dẫn là Không, tất cả các mô-đun cấp cao nhất trên sys.path.

>>> pk = pkgutil.iter_modules()
>>> for p in pk:
   print (p[1])

walk_packages (path =None, prefix ='', onerror =None): Mang lại ModuleInfo cho tất cả các mô-đun một cách đệ quy trên đường dẫn hoặc nếu đường dẫn là Không thì tất cả các mô-đun có thể truy cập được.

import pkgutil
import sys
def explore_package(module_name):
   loader = pkgutil.get_loader(module_name)
   for sub_module in pkgutil.walk_packages([loader.filename]):
      _, sub_module_name, _ = sub_module
      qname = module_name + "." + sub_module_name
      print(qname)
      explore_package(qname)

ModuleInfo (module_finder, name, ispkg):Trả về một tệp tin có tên chứa tóm tắt ngắn gọn về thông tin của mô-đun.