我在使用嵌入式 Python for C 时遇到问题文档 http://docs.python.org/extending/embedding.html- 每当我尝试使用导入的模块时,我都会得到:
PythonIncl.exe 中 0x1e089e85 处未处理的异常:0xC0000005:
读取位置 0x00000004 时发生访问冲突。
错误发生在PyObject_GetAttrString()
方法和文档没有太大帮助。我也尝试过使用教程Example https://www6.software.ibm.com/developerworks/education/l-pythonscript/l-pythonscript-ltr.pdf来自 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 程序中,并希望在两者之间传输数据。然而,我已经通过基本示例的概念验证测试失败了。