使用特定于发行版的共享库依赖项分发Python包

时间:2018-02-13 17:13:13

标签: python pip cpython

假设我想分发一个CPython包,它包含共享库的绑定(在Linux上)。共享库来自OS的包管理器安装的包(例如apt)。

库版本特定于操作系统分发:一个版本为1.1.0,另一个版本可能版本为2.2.0

另一方面,有问题的绑定取决于操作系统中存在的共享库的特定版本。由于我的python包的版本控制遵循共享库版本控制,版本2.2.0可能包含1.1.0中不存在的符号,反之亦然。

如何在项目要求中分发和包含该包,以便为项目运行的不同发行版安装正确的绑定版本?

C绑定组件使用CPython API。从PEP 513开始,它所绑定的共享库看起来不在manylinux1平台标记的范围内。

我想我可以从setup.py运行一些任意代码来检查库版本,然后相应地编译绑定,但这似乎是一个糟糕的解决方案。这需要我在我的软件包的每个版本中包含每个库版本的源代码(如果我错了,请纠正我)。

我想我可以在两个单独的包中分发绑定和上面提到的任意代码。但那对我来说仍然看起来很难看。

0 个答案:

没有答案