1

我正在搜索一个非常小且简单的示例以在 C 应用程序中加载 python 模块。在我搜索的任何地方,我都会看到很长的例子,但我不明白。如果这是重复的共享 stackoverflow 链接,我将删除此问题。谢谢,我是 Python 新手。

4

1 回答 1

4

创建一个 Python 模块名称 reverse.py,如下所示:

def rstring(s):
    i = len(s)-1
    t = ''
    while(i > -1):
    t += s[i]
    i -= 1
    return t

创建一个 C 应用程序,如下所示:

#include <Python.h>
int main()
{
    PyObject *strret, *mymod, *strfunc, *strargs;
    char *cstrret;
    Py_Initialize();
    PySys_SetPath("."); 
    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;
}

现在确保将 reverse.py 和您的 C 应用程序保存在同一个文件夹中。之后,请编译并运行 C 示例应用程序。

请研究上面示例中的每一行,因为总共大约有 20 行,如果您对任何行有疑问,请告诉我,我很乐意回答。

由于我已经更正了这些示例,因此归功于此处的 SO Link:Embedding Python into C - importing modules

于 2012-05-26T16:32:33.657 回答