Me gustaría llamar a una función personalizada que está definida en un módulo python de C. Tengo un código preliminar para hacer eso, pero solo imprime el salida a stdout.Llamando a un método python de C/C++, y extrayendo su valor de retorno
mytest.py
import math
def myabs(x):
return math.fabs(x)
test.cpp
#include <Python.h>
int main() {
Py_Initialize();
PyRun_SimpleString("import sys; sys.path.append('.')");
PyRun_SimpleString("import mytest;");
PyRun_SimpleString("print mytest.myabs(2.0)");
Py_Finalize();
return 0;
}
¿Cómo puedo extraer el valor de retorno en una doble C y utilizarlo en C?
¿Ha leído esto: http: // docs.python.org/c-api/? Parece responder a tu pregunta. http://docs.python.org/c-api/number.html#PyNumber_Float parece ser lo que estás buscando. ¿Qué pasa con eso? ¿Qué más necesitas? –
La pregunta realmente es cómo acceder al objeto devuelto desde 'mytest.myabs (2.0)'. Una vez que tengo un puntero, puedo convertirlo fácilmente en un flotante usando la función PyNumber_Float. – dzhelil
¿Podemos ver una respuesta con un ejemplo de código y terminar con eso? –