Python 包擴充套件實用程式
當您想要為特定包新增模組搜尋路徑並使用包中包含的資源時,需要使用 Python 庫中的 pkgutil 模組。它包含用於更改 Python 包匯入規則的函式。也可以從包中分發的檔案中載入非程式碼資源。
extend_path(path, name)
擴充套件包含包的模組的搜尋路徑。預期用途是將以下程式碼放在包的 __init__.py 中
import pkgutil __path__ = pkgutil.extend_path(__path__, __name__)
extend_path() 在 sys.path 中掃描包含名為第二個引數給出的包的子目錄的目錄。目錄列表與作為第一個引數傳遞的路徑值組合,並作為單個列表返回,適合用作包匯入路徑。
**find_loader(fullname):** 獲取給定 fullname 的模組載入器。
**get_importer(path_item):** 獲取給定 path_item 的查詢器。
get_loader(module_or_name)
獲取 module_or_name 的載入器物件。
**iter_importers(fullname=''):** 為給定的模組名稱生成查詢器物件。
**iter_modules(path=None, prefix=''):** 生成 path 上所有子模組的 ModuleInfo,或者如果 path 為 None,則生成 sys.path 上所有頂級模組的 ModuleInfo。
>>> pk = pkgutil.iter_modules() >>> for p in pk: print (p[1])
**walk_packages(path=None, prefix='', onerror=None):** 遞迴生成 path 上所有模組的 ModuleInfo,或者如果 path 為 None,則生成所有可訪問模組的 ModuleInfo。
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): 這返回一個命名元組,其中包含模組資訊的簡要摘要。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP