我有提供同步和异步接口的通用 http 客户端库。在它下面使用requests或aiohttp。我的大多数项目都使用同步或异步版本,因此没有理由同时aiohttp要求requests. 为了解决这个问题,setup.py我有以下内容:extras_requiresetup.py
extras_require={
"async": ["aiohttp"],
"sync": ["requests"],
"all": ["aiohttp", "requests"],
}
唯一的问题是,如果您安装我的 http 客户端软件包而没有任何附加功能,那真的没有意义,因为由于缺少依赖项,您将无法同时使用这两个版本。
有没有办法验证我的 Python 包是否安装了至少一个指定的附加功能?可能是我的某种钩子setup.py?