0

我正在尝试在我的C代码中嵌入 python。所以目标是我想在C程序中运行一个 python 代码,当 python 代码完成运行时,它应该将一个整数值返回给我的 C 程序。

在我的 python 代码“try.py”中,我return 10在 python 文件的末尾指定。

但是,我尝试了以下方法,但返回值始终为0. 为什么?

#include <Python.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{    int sys;
     Py_Initialize();
     PyObject* PyFileObject = PyFile_FromString("try.py", "r");
     sys=PyRun_SimpleFileEx(PyFile_AsFile(PyFileObject), "try.py", 1);
     Py_Finalize();
     printf("\n\n the return value is %d\n\n",sys);
     return 0;
}
4

1 回答 1

0

成功和错误的PyRun_SimpleFileEx回报。0-1

这是从这里提取的

int PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags)

根据 flags 参数从模块中的命令执行 Python 源代码。如果main尚不存在,则创建它。成功时返回 0,如果引发异常则返回 -1。如果出现错误,则无法获取异常信息。有关标志的含义,请参见下文。

请注意,如果引发了其他未处理的 SystemExit,则只要未设置 Py_InspectFlag,此函数将不会返回 -1,而是退出进程。

于 2015-03-26T02:28:39.323 回答