我写了一个库,它的主要功能是用 C 语言实现的(速度很关键),它周围有一个薄薄的 Python 层来处理 ctypes
问题。
我要打包它,我想知道如何才能最好地解决这个问题。它必须与之交互的代码是一个共享库。我有一个构建 C 代码并创建 .so
文件的 Makefile,但我不知道如何通过 distutils 编译它。我是否应该通过覆盖 install
命令来调用 make
和 subprocess
(如果是这样,是 install
的地方为此,还是 build
更合适?)
更新:我想指出,这不是 Python 扩展。也就是说,C 库本身不包含与 Python 运行时交互的代码。 Python 正在对直接的 C 共享库进行外部函数调用。
最佳答案
鉴于您已按照有关如何 create Python extensions in C 的说明进行操作,您应该像 this documentation 中那样征用扩展模块.
所以你的库的 setup.py
脚本应该是这样的:
from distutils.core import setup, Extension
setup(
name='your_python_library',
version='1.0',
ext_modules=[Extension('your_c_extension', ['your_c_extension.c'])],
)
和 distutils
知道如何将您的扩展编译为 C 共享库,以及将它放在哪里。
当然我没有关于您的库的更多信息,因此您可能想向 setup(...)
调用添加更多参数。
关于python - 打包包含 C 共享库的 Python 库的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24062830/