在构建Python扩展模块的轮子时,如何告诉
setup()
使用现有/预编译的共享库?
出于可怕的原因,SO/DLL 必须由 Python 无法调用的构建系统进行编译。 (FWIW 它是使用稳定的有限 ABI 进行编译的。)但我需要我的
setup.py
来正确捆绑该库。
有这样的选择吗?是否可以以某种方式子类化
Extension
并在要求构建它时返回现有库?
您可以创建一个 MANIFEST.in (https://packaging.python.org/en/latest/guides/using-manifest-in/) 并以这种方式创建轮子时包含文件。
因此,如果您在源代码树中的某个位置获得了所有共享库,则可以这样做
global-include *.so