如何在Linux中使用python-cffi的共享动态库?
操作系统:CentOS 6(64位)
我有一个用C语言写的动态库(.so文件)。我想在它上面创建一个Python的抽象层,然后用它来实现我的逻辑。为了这个目的,我决定使用CFFI,因为它不涉及任何特定领域的语言。
我想了解几件事:
- 有没有什么好的入门资料可以参考,关于如何使用CFFI加载和使用动态库?官网的文档提到了一些,但我在找有没有具体的参考资料或者示例,或者有没有人尝试过这个。
- 这种方法可能会有什么缺点吗?
谢谢
1 个回答
4
这里有两个不错的入门资源:
可以看看CFFI的文档,特别是关于ABI的例子:https://cffi.readthedocs.org/en/latest/overview.html#out-of-line-example-abi-level-out-of-line
还有我的CFFI示例代码库:https://github.com/wolever/python-cffi-example
这两个资源结合起来,你应该能顺利地制作你的包装器。
至于你的第二个问题:如果你要包装的共享库非常简单(比如,只有几个函数调用和简单的数据结构),你可能会发现ctypes
更简单一些,因为它是标准库的一部分。