C++ 中调用python

学以致用

参考网站https://docs.python.org/3.3/c-api/index.html

Py_SetPythonHome();

用来设置Python脚本的目录,如需设置必须在init前

Py_Initialize();

初始化python环境

PyObject* pModule = PyImport_ImportModule("文件名")

载入模块,存在pModule句柄中。

PyObject* pExecute = PyObject_GetAttrString(pModule, "函数名");

载入模块中定义的函数,存在pExecute句柄中。

PyObject* pParam = Py_BuildValue("(s)", "参数");

定义需要输入函数的参数

PyObject* pResult = PyObject_CallObject(pExecute , pParam);

调用函数,并得到输出(参数需要元组格式)

PyObject* PyObject_CallFunctionObjArgs(PyObject* callable, ..., NULL)

调用函数,并得到输出(参数需要PyObject格式,最后以NULL结尾)

PyArg_Parse(pResult, "s", &pBuf)

解析函数输出,并存入预定义的地址中。

PyObject* obj = PyObject_GetAttrString(pModule, 变量名);

取回python模块中的变量。

int PySequence_Check(PyObject*o)

检查该对象是否是序列。.

Py_ssize_t PySequence_Size(PyObject*o)

Py_ssize_t PySequence_Length(PyObject*o)

返回对象序列长度。

Py_DECREF(py对象)

删除之前定义的python对象

Py_Finalize();

结束对python的调用。

numpy:

PyArray_SimpleNewFromData

猜你喜欢

转载自blog.csdn.net/LeGe675797663/article/details/85177645