0

コードに python を埋め込もうとしていCます。その目的は、プログラム内で python コードを実行したいということです。python コードのC実行が終了したら、整数値を 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 引数に従って、メインモジュールの command から Python ソース コードを実行します。mainがまだ存在しない場合は、作成されます。成功した場合は 0 を返し、例外が発生した場合は -1 を返します。エラーが発生した場合、例外情報を取得する方法はありません。フラグの意味については、以下を参照してください。

未処理の SystemExit が発生した場合、この関数は -1 を返さず、Py_InspectFlag が設定されていない限りプロセスを終了することに注意してください。

于 2015-03-26T02:28:39.323 に答える