У меня проблемы с использованием встроенного Python для C согласно Документации - Всякий раз, когда я пытаюсь использовать импортированные модули, я получаю:
Необработанное исключение в 0x1e089e85 в PythonIncl.exe: 0xC0000005: Место чтения нарушения доступа 0x00000004.
Ошибка возникает в методе PyObject_GetAttrString()
, и документация не сильно помогает.Я также пытался использовать учебники, как в Example от IBM, но всегда получал одно и то же нарушение прав доступа.
Ниже приведен пример кода из одного из учебников, который мне не кажетсячтобы начать работу, что здесь не так?
C-код (в одном основном файле):
#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;
}
Python-код (в файле с именем reverse.py, в той же папке):
def rstring(s):
i = len(s)-1
t = ''
while(i > -1):
t += s[i]
i -= 1
return t
Я работаю на машине с XP, использующей MSVS2008, Python 2.7
Немного контекста: я пытаюсь встроить небольшой скрипт на Python, использующий OpenOPC, в довольно большой C-Программа и хотел бы передавать данные между ними.Тем не менее, я уже провалил тест на проверку концепции с базовыми примерами.