Incorporando Python em C - importando módulos
Estou tendo problemas ao usar o Embedded Python para C de acordo com oDocumentaçã - Sempre que tento usar módulos importados, recebo um:
Exceção não tratada em 0x1e089e85 no PythonIncl.exe: 0xC0000005: local de leitura da violação de acesso 0x00000004.
O erro ocorre noPyObject_GetAttrString()
e a documentação não ajuda muito. Eu também tentei usar tutoriais como em umExempl da IBM, mas sempre obtenha a mesma violação de acess
A seguir está o código de exemplo de um dos tutoriais que parece que não consigo trabalhar, o que há de errado aqu
Código C (em um arquivo 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;
}
ódigo Python (em um arquivo chamado reverse.py, mesma pasta):
def rstring(s):
i = len(s)-1
t = ''
while(i > -1):
t += s[i]
i -= 1
return t
Estou executando uma máquina XP usando MSVS2008, Python 2.7
Um pouco de contexto: estou tentando incorporar um pequeno script python, que usa o OpenOPC, em um programa C bastante grande e gostaria de transferir dados entre os dois. No entanto, eu já falhei em um teste de prova de conceito com exemplos básicos.