写一段c++调用python的代码
时间: 2023-02-18 13:40:08 浏览: 67
:
#include <stdio.h>
#include <Python.h>
int main(int argc, char *argv[])
{
Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('/path/to/your/python/programs')");
PyObject* pName = PyUnicode_FromString("your_python_program");
PyObject* pModule = PyImport_Import(pName);
Py_DECREF(pName);
if (pModule != NULL) {
PyObject* pFunc = PyObject_GetAttrString(pModule, "your_function");
if (pFunc && PyCallable_Check(pFunc)) {
PyObject* pArgs = PyTuple_New(1);
PyObject* pValue = PyLong_FromLong(2);
PyTuple_SetItem(pArgs, 0, pValue);
PyObject* pResult = PyObject_CallObject(pFunc, pArgs);
Py_DECREF(pArgs);
if (pResult != NULL) {
printf("Result of call: %ld\n", PyLong_AsLong(pResult));
Py_DECREF(pResult);
}
else {
Py_DECREF(pFunc);
Py_DECREF(pModule);
PyErr_Print();
fprintf(stderr,"Call failed\n");
return 1;
}
}
else {
if (PyErr_Occurred())
PyErr_Print();
fprintf(stderr, "Cannot find function \"%s\"\n", "your_function");
}
Py_XDECREF(pFunc);
Py_DECREF(pModule);
}
else {
PyErr_Print();
fprintf(stderr, "Failed to load \"%s\"\n", "your_python_program");
return 1;
}
Py_Finalize();
return 0;
}