我在使用嵌入式Python for C时遇到了问题,按照文档的说明进行操作。每当我尝试使用导入的模块时,就会出现以下错误:
下面是一个教程中的示例代码,我无法使其正常工作,请问哪里出错了?
C代码(在一个主文件中):
我正在使用MSVS2008和Python 2.7的XP机器。一些背景信息:我试图将使用OpenOPC的小型Python脚本嵌入到相当大的C程序中,并希望在两者之间传输数据。但是,即使是最基本的示例也已经失败了。
该错误发生在Unhandled exception at 0x1e089e85 in PythonIncl.exe: 0xC0000005: Access violation reading location 0x00000004.
PyObject_GetAttrString()
方法中,但是文档并没有提供太多帮助。我还尝试过使用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
我正在使用MSVS2008和Python 2.7的XP机器。一些背景信息:我试图将使用OpenOPC的小型Python脚本嵌入到相当大的C程序中,并希望在两者之间传输数据。但是,即使是最基本的示例也已经失败了。