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