.pyd生成
具体方法
.pyd调用的环境要与生成的python环境一致,才能被调用。
C++中调用.py/pyd的方法是一样的
配置环境
这里需要的是debug版本,需要python3x_d.lib(release版本,需要python3x.lib)
C++代码
#include<Python.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
Py_Initialize();
PyObject* pModule = NULL;
PyObject* pFunc = NULL;
PyObject* pName = NULL;
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
pModule = PyImport_ImportModule("inference");
pFunc = PyObject_GetAttrString(pModule, "add_fun");
PyObject* pArgs = PyTuple_New(2);
PyTuple_SetItem(pArgs, 0, Py_BuildValue("i", 10));
PyTuple_SetItem(pArgs, 1, Py_BuildValue("i", 3));
PyObject* pReturn = PyObject_CallObject(pFunc, pArgs);
int nResult;
PyArg_Parse(pReturn, "i", &nResult);
cout << "return result is " << nResult << endl;
Py_Finalize();
cout << "hello world!" << endl;
return 0;
}
python代码
# python
def add_fun(a,b):
return a+b
当前案例的文件存放的路径关系: