C中内嵌Python
新建立一个工程,首先需要将工作目录设置到Python-3.1.1PCbuild中,以获取到动态库,至于静态库蔽握岩的包含,Include目录的指定,那自然也是少不了的。文件中需要包含Python.h文件,这也是皮缺必须的。
接口中
Py_Initialize()
Py_Finalize()
其宏御他的根据需求,再引入相应的python builder 即可
ctypes: 可直接调用c语言动态链接库。
使用步骤:
1>编译好自己的动态连接库
2>利用ctypes载入动态连接库
3>用ctype调用C函数接口时,需要将python变量类型做转换后才能作为函数参数,转换原则见下图:
4>Python若想获取ctypes调用的C函数返回值,需要先指定返回值类型。我们将在接下来的完整Sample中看到如何使用。
#Step 1: test.c#include <stdio.h>int add(int a, int b)
{
return a + b
}#Step 2: 编译动态链接库 ( 如何编译动态链接库在本文不详解拦核派,网上资料一大堆。)gcc -fPIC -shared test.c -o 简贺libtest.so
#Step 3: test.py
from ctypes import *mylib = CDLL("libtest.so") 或者 cdll.LoadLibrary("libtest.so") add = mylib.add
add.argtypes = [c_int, c_int] # 参数类型,两个int(c_int是ctypes类型,见上表)
add.restype = c_int # 返氏携回值类型,int (c_int 是ctypes类型,见上表)
sum = add(3, 6)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)