Python访问动态库的方式速记
详细信息清参考《Python CookBook》第三版第十五章和扩展和嵌入Python解释器
ctype
有一些 C 函数已经被编译到共享库中(或者Go编译成的C语言风格动态库)。希望可以使用纯 Python 代码调用这些函数,而不用编写额外的 C 代码或使用第三方扩展工具。
对于需要调用 C 代码的一些小的问题,通常使用 Python 标准库中的 ctypes 模块就足够了。要使用 ctypes ,你首先要确保你要访问的 C 代码已经被编译到和 Python
解释器兼容(同样的架构、字大小、编译器等)的某个共享库中了。
Python.h
想不依靠其他工具,直接使用 Python 的扩展 API 来编写一些简单的 C 扩展模块。
这个不光需要编译好的动态库,还需要对应的头文件。
- 第一步:准备好目标动态库和对应的头文件
- 第二步:
# include "Python.h"
编写C语言代码对目标库函数进行Python封装 - 第三步:编写
setup.py
,通过python3 buildlib.py build_ext --inplace
绑定扩展模块 - 第四步:
import
使用
Swig
- 第一步:准备目标动态库和头文件
- 第二步:编写Swig接口文件
- 第三步:swig转换
- 第四步:编写
setup.py
,通过python3 buildlib.py build_ext --inplace
绑定扩展模块 - 第五步:
import
使用
Cython
- 第一步:准备目标动态库和头文件
- 第二步:编写
pxd
文件 - 第三步:编写
pyx
文件 - 第四步:编写
setup.py
,通过python3 buildlib.py build_ext --inplace
绑定扩展模块 - 第五步:
import
使用
还真有人点开啊🤣随意随意😂