Incrustando Python en C - importando módulos
Tengo problemas para usar el Python incorporado para C segúnDocumentació - Cada vez que intento usar módulos importados obtengo un:
Excepción no controlada en 0x1e089e85 en PythonIncl.exe: 0xC0000005: Ubicación de lectura de infracción de acceso 0x00000004.
El error ocurre en elPyObject_GetAttrString()
método y la documentación no es de mucha ayuda. También he intentado usar tutoriales como en unEjempl de IBM, pero siempre obtiene la misma infracción de acceso.
El siguiente es el código de ejemplo de uno de los tutoriales que parece que no puedo poner a trabajar, ¿qué está mal aquí?
C-Code (en un archivo principal):
#include <Python.h>
int main()
{
PyObject *strret, *mymod, *strfunc, *strargs;
char *cstrret;
Py_Initialize();
mymod = PyImport_ImportModule("reverse");
strfunc = PyObject_GetAttrString(mymod, "rstring");
strargs = Py_BuildValue("(s)", "Hello World");
strret = PyEval_CallObject(strfunc, strargs);
PyArg_Parse(strret, "s", &cstrret);
printf("Reversed string: %s\n", cstrret);
Py_Finalize();
return 0;
}
Código de Python (en un archivo llamado reverse.py, misma carpeta):
def rstring(s):
i = len(s)-1
t = ''
while(i > -1):
t += s[i]
i -= 1
return t
Estoy ejecutando una máquina XP con MSVS2008, Python 2.7
Un poco de contexto: estoy tratando de incrustar un pequeño script de Python, que usa OpenOPC, en un programa C bastante grande y me gustaría transferir datos entre los dos. Sin embargo, ya fallé en una prueba de prueba de concepto con ejemplos básicos.