Добрый день.
Из C++ кода вызываю питиновский скрипт:
object main_module((handle<>(borrowed(PyImport_AddModule("__main__")))));
object main_namespace = main_module.attr("__dict__");
try {
object result = exec(script.c_str (), main_namespace, main_namespace);
TestResult res = extract<TestResult> (result);
std::cout << res.logStr << std::endl;
} catch ( error_already_set const & ) {
std::cout << "error!" << std::endl;
assert(PyErr_Occurred());
PyErr_Print();
}
python-овский скрипт:
import testCore
test = testCore.TestCore()
test.run()
testCore — C++-класс, который забинден в питон.
Его метод run возвращает структуру TestResult, которая также забиндина в питон.
Но вызов данного C++-кода приводит к ошибке:
TypeError: No registered converter was able to produce a C++ rvalue of type TestResult from this Python object of type NoneType
Как мне в C++-коде получить результат выполнения данного скрипта?
Спасибо.