确保Python包至少安装了一个ex

2024-03-29 05:31:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个通用的http客户端库,它同时提供同步和异步接口。在下面它使用requestsaiohttp。我的大多数项目都使用同步或异步版本,因此没有理由在setup.py中同时要求aiohttprequests。为了解决这个问题,我在setup.py中有以下extras_require

extras_require={
    "async": ["aiohttp"],
    "sync": ["requests"],
    "all": ["aiohttp", "requests"],
}

唯一的问题是,如果你安装我的http客户端包没有任何额外的,这是没有意义的,因为你将无法使用这两个版本由于缺少依赖关系。你知道吗

有没有办法验证我的Python包是否安装了至少一个指定的附加程序?可能是我的setup.py中的某种钩子?你知道吗


Tags: 项目py版本http客户端extrasasyncaiohttp
1条回答
网友
1楼 · 发布于 2024-03-29 05:31:30

据我所知,没有直接的解决办法。你知道吗

我能想到的一个更复杂的解决方案是发布另外两个名为something-syncsomething-async的项目,它们分别只有一个依赖项:something[sync]something[async](假设您的项目名为something)。使用良好的CI/CD工具,这将相对容易实现。你知道吗

相关问题 更多 >