我有一个通用的http客户端库,它同时提供同步和异步接口。在下面它使用requests
或aiohttp
。我的大多数项目都使用同步或异步版本,因此没有理由在setup.py
中同时要求aiohttp
和requests
。为了解决这个问题,我在setup.py
中有以下extras_require
:
extras_require={
"async": ["aiohttp"],
"sync": ["requests"],
"all": ["aiohttp", "requests"],
}
唯一的问题是,如果你安装我的http客户端包没有任何额外的,这是没有意义的,因为你将无法使用这两个版本由于缺少依赖关系。你知道吗
有没有办法验证我的Python包是否安装了至少一个指定的附加程序?可能是我的setup.py
中的某种钩子?你知道吗
据我所知,没有直接的解决办法。你知道吗
我能想到的一个更复杂的解决方案是发布另外两个名为
something-sync
和something-async
的项目,它们分别只有一个依赖项:something[sync]
和something[async]
(假设您的项目名为something
)。使用良好的CI/CD工具,这将相对容易实现。你知道吗相关问题 更多 >
编程相关推荐