Я пытаюсь вызвать функцию python из C ++. Однако я не мог понять, как передать аргумент функции вызова функции python.
У меня есть файл python с именем «arbName.py» и файл c ++ с именем «main.cpp».
arbName.py
def someFunction(a):
return a
arbName.py
#include <Python.h>
int main()
{
Py_Initialize();
//add . to path
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append(\".\")");
PyObject* myModuleString = PyUnicode_FromString((char*)"arbName");
PyObject* myModule = PyImport_Import(myModuleString);
PyObject* myFunction = PyObject_GetAttrString(myModule,(char*)"someFunction");
//couldn't figure out this part.
//How to declare a python variable and/or pass it to the python function.
PyObject* args = PyUnicode_FromString("1");
PyObject *myResult = PyObject_CallFunctionObjArgs(myFunction, args);
return 0;
}
EDIT: Я смог сделать это, изменив последние две строки с помощью
PyObject* args = Py_BuildValue("(d)", 2.0);
PyObject *myResult = PyObject_CallObject(myFunction, args);