[Boost.Python] Как вернуть значение из python-овского скрипт
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 15.08.07 14:34
Оценка:
Добрый день.

Из 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++-коде получить результат выполнения данного скрипта?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.