Python打包:Boost库作为依赖

Zou*_*ias 5 python boost cython pypi python-packaging

假设有人想要打包一个依赖于 C++ boost 库的 Python (Cython) 库。

配置的最佳方法是什么setup.py,以便正确地通知用户需要安装 boost 库(即apt-get install libboost-dev在 Ubuntu 等其他操作系统中)?或者将 boost 库包含在 python 包分发中是更好的做法吗?

dan*_*nny 4

这个问题最好问为

分发包含外部库依赖项的 Python 扩展的最佳方式是什么?

这对于二进制轮包来说更好。

用户不需要了解有关 的任何信息setup.py,它用于构建和安装源代码。用户只需下载并安装二进制轮包即可。

仅包含头文件并不能解决需要构建和链接库的问题。它还会带来版本不兼容的问题。

因此,setup.py不需要对此有任何特殊之处,它只需要知道在哪里可以找到标头,如果包含该库,该标头将成为项目中的子目录以及要链接的库。

文档应包括如何从源代码构建的说明,为此需要的不仅仅是 boost(python 头文件、适当的编译器等)。

然后,像auditwheel这样的工具负责将外部库依赖项捆绑到二进制轮中,因此最终用户无需安装该库即可使用您的包。

另请参阅Manylinux以了解分发二进制 Python 扩展和此演示项目