python - 入口点子组的 Python 包发现
问题描述
我一直在练习打包 python 库,setuptools
并且我知道entry_point
关键字的使用以及使用包元数据来收集给定组的 entry_points。
我的问题是,pkg_resources
,importlib
或pkgutil
任何其他已知软件包是否提供了一种发现给定入口点组的子组的方法?我的意思是,找到所有以某个前缀开头的组:
>>> import pkg
>>> pkg.find_subgroups('entry.point.group')
entry.point.group.first
entry.point.group.other
entry.point.group.one.more
解决方案
entry_points
我认为您正在从importlib.metadata
包装中寻找方法。该importlib.metadata
包是在 python 3.8 中引入的。对于较低版本的 python,您可以安装 backported 包importlib_metadata
import sys
if sys.version_info < (3, 8):
from importlib_metadata import entry_points
else:
from importlib.metadata import entry_points
discovered_plugins = entry_points()
grps = set(for grp,eps in discovered_plugins.items())
for grp in grps:
if grp.startswith('entry.point.group'):
print(grp)
推荐阅读
- java - 在 java 中保存和加载不是字符串或 int 的对象
- azure - 运行 Docker 的 Azure 虚拟机上的“挂载:权限被拒绝”
- javascript - 让firebase返回一个排序的响应
- haskell - vim haskell 的符号和在 Haskell 中实现 SKI 的函数
- email-attachments - 如何通过 mailx 将标准输出作为附件发送?
- java - Spring Data MongoDB *在*保存到存储库后执行验证
- pimcore-v5 - 如何在 Pimcore v5 中设置 2 个相同类型的数据对象之间的父子关系?
- reactjs - 如何在本机反应中订购数组?
- docker - 在 Helm 图表 values.yaml 中拉取 docker hub 图像
- windows - 从特定的远程机器测试网站(www.testwebsite.com)