一、寫一個cpp
這個cpp的功能是“加法器”,extern“C”的存在是因為python的ctype可以調用C但是沒有Cplustype~~~所以,~~~
#include"/home/oujie/anaconda3/envs/pytorch-master/include/python3.7m/Python.h"
#功能實現在這個函數中
extern"C"
intadd_func(inta,intb)
{
returna+b;
}
#下面的這些是調用相關的API把數據格式進行轉換,讓python可以調用,這也是python的頭文件里面的定義好的
extern"C"
staticPyObject*_add_func(PyObject*self,PyObject*args)
{
int_a,_b;
intres;
if(!PyArg_ParseTuple(args,"ii",&_a,&_b))
returnNULL;
res=add_func(_a,_b);
returnPyLong_FromLong(res);
}
extern"C"
staticPyMethodDefCppModuleMethods[]=
{
{
"add_func",
_add_func,
METH_VARARGS,
""
},
{NULL,NULL,0,NULL}
};
extern"C"
PyMODINIT_FUNCinitcpp_module(void)
{
(void)Py_InitModule("cpp_module",CppModuleMethods);
}
二、對上面的這個CPP編譯
#linux下面編譯成so
gcc-oadd_demo.so-shared-fPICadd_demo.c
#windows下編譯成dll
三、寫一個python文件調用
importctypes
dll=ctypes.cdll.LoadLibrary
lib=dll("./add_demo.so")
print("pythoncallcppso:")
p=lib.add_func(2,3)
print(p)
以上內容為大家介紹了python如何調用cpp,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。