小编Sho*_*kaa的帖子

将Python嵌入C - 导入模块

我根据文档使用嵌入式Python for C时遇到问题- 每当我尝试使用导入的模块时,我得到一个:

PythonIncl.exe中0x1e089e85处的未处理异常:0xC0000005:访问冲突读取位置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;
}
Run Code Online (Sandbox Code Playgroud)

Python代码(在一个名为reverse.py的文件中,相同的文件夹):

def rstring(s):
    i = len(s)-1
    t = ''
    while(i > -1):
        t += s[i]
        i -= 1
    return t
Run Code Online (Sandbox Code Playgroud)

我正在使用MSVS2008,Python 2.7运行XP机器

一点上下文:我试图在一个相当大的C程序中嵌入一个使用OpenOPC的小python脚本,并希望在两者之间传输数据.但是,我已经通过基本示例进行了概念验证测试.

c python python-embedding python-c-api

7
推荐指数
1
解决办法
8140
查看次数

标签 统计

c ×1

python ×1

python-c-api ×1

python-embedding ×1