我正在尝试在我的C
代码中嵌入python。所以目标是我想在C
程序中运行一个python代码,当python代码完成运行时,它应该将一个整数值返回给我的C程序。
在我的python代码" try.py"中,我在python文件的末尾指定return 10
。
但是,我尝试了以下操作,但返回值始终为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;
}
答案 0 :(得分:0)
PyRun_SimpleFileEx
成功时返回0
,错误时返回-1
。
这是从here
中提取的
int PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags)
根据flags参数从 main 模块中的命令执行Python源代码。如果 main 尚不存在,则会创建它。成功时返回0,如果引发异常则返回-1。如果出现错误,则无法获取异常信息。有关标志的含义,请参见下文。
请注意,如果引发了另外未处理的SystemExit,则此函数不会返回-1,但只要未设置Py_InspectFlag,就退出该进程。