запуск программы на Python из C ++ - PullRequest
1 голос
/ 19 июня 2019

У меня есть код Python, который выполняет обучение / вывод CNN.Как правило, вы должны запускать код со многими флагами, как следует

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

Я хотел бы иметь возможность запустить эту программу из кода C ++, который создает обучающий образец (и пропустить этап, на котором я сохраняю образецв файл в C ++ и читать его в Python).Есть ли способ вызвать основную функцию python и дать параметры, которые будут храниться в argv?

Я работаю в операционной системе Linux (Ubuntu 18.04, но в будущем SL7), используя c ++ с Python.Заголовок h, позволяющий запускать python

общий код, который я пробовал для отправки параметров в 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 входил в argv Python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...