通过ctypes将C库移植到Python

通过ctypes将C库移植到Python,python,c,ctypes,porting,Python,C,Ctypes,Porting,我在很多地方读过,C库可以使用标准库中的ctypes模块移植到python或用python编写 我已经浏览了help(“ctypes”)页面,根据我所能收集到的信息,我可以在Python中创建一些C结构,但我的问题是如何使用这些来访问底层系统调用?例如,当尝试将类似“sys/if.h”的东西移植到Python时 有人能给我指一下有关这方面的好资源/文档吗?如果你想访问系统调用,你可以这样做: >>> from ctypes import CDLL >>> li

我在很多地方读过,C库可以使用标准库中的ctypes模块移植到python或用python编写

我已经浏览了help(“ctypes”)页面,根据我所能收集到的信息,我可以在Python中创建一些C结构,但我的问题是如何使用这些来访问底层系统调用?例如,当尝试将类似“sys/if.h”的东西移植到Python时


有人能给我指一下有关这方面的好资源/文档吗?

如果你想访问系统调用,你可以这样做:

>>> from ctypes import CDLL
>>> libc = CDLL('libc.so.6')
>>> print libc.strlen('abcde')
5
参考:

或(这是棘手的部分)

将此处概述的系统调用包装到C代码中:

然后编写CTypes将使用的兼容源代码文件,如下所示:


我希望这能有所帮助。

为什么不使用Cython/Pyrex?我不是很确定,但我认为Cython需要一个单独的Cython编译器/解释器?我不能把它作为我项目的一部分。但我也希望您能提供任何关于Cython的信息作为替代方案。确实如此,但它是通过像任何常规模块一样安装到Python中来完成的:
Python setup.py install
。唯一的要求是它需要一个C编译器。在我接受答案之前,我会先试试这个。希望你不介意。:)没问题,@Ayos-这就是Stackoverflow的全部意义