从C ++运行python程序

时间:2019-06-18 23:06:58

标签: python c++11

我有一个运行CNN训练/推断的python代码。通常,您将运行带有许多标志的代码,如下所示:

python MY_PYHTON_FILE train -XX flag1 -YY flag2 ....

我希望能够从生成训练样本的c ++代码运行该程序(并跳过将样本保存到c ++中的文件并在python中读取的阶段)。有没有办法调用python的“ main”函数并给出将存储在argv中的参数?

我正在使用带有python.h标头的c ++的Linux操作系统(ubuntu 18.04,但在将来的SL7中)工作

我尝试向python发送参数的通用代码如下所示:

        Py_Initialize();

         // Build the name object
        pName = PyString_FromString(argv[1]);
        // Load the module object
        pModule = PyImport_Import(pName);
        // pDict is a borrowed reference 
        pDict = PyModule_GetDict(pModule); 
        // pFunc is also a borrowed reference 
        pFunc = PyDict_GetItemString(pDict, argv[2]);
        if (PyCallable_Check(pFunc))
.
. // prepare pArgs 
.
                pValue = PyObject_CallObject(pFunc, pArgs);
        Py_Finalize();


但是在这种情况下,我需要更改python函数以接受参数。我想让args进入python的argv

0 个答案:

没有答案