如何将具有多个依赖项的C库编译到Python包中?CMake的?

Sha*_*ang 6 python ctypes pip python-3.x python-packaging

我在python3.x中有一个Python包我一直在写,它与C库中的两个C函数交互.目前,我一直在使用ctypes,我直接链接到共享库*.so,然后使用python脚本与此进行交互.

https://docs.python.org/3/library/ctypes.html#module-ctypes

我现在很困惑如何分发这个python包,用户可以在github上或通过pip安装python包.不知何故,在安装时,需要下载,解压缩和编译C库.

问题是,C库包含几个与其他C库的依赖关系; 我目前静态链接这些库,现在整个C库通过cmake安装.

(1)是否可以通过cmake安装现在安装的C库?看来这应该完全在setup.py,对吗?

(2)在这种情况下,我对distutils/setuptools问题感到困惑.基于此链接,https://docs.python.org/3/extending/building.html#building

这样做的正确方法是通过distutils,而不是setuptools.但是,setuptools通常是在2018年创建/分发python包的推荐方法.上面的文档是否已过时?