Если вы хотите работать между C ++ и Python, тогда Boost Python - это то, что вы ищете. Вы можете писать привязки C Python вручную для Cython, но это во многом ограничивает то, как вы собираетесь писать свой код. Это самый простой способ, как видно из некоторых фрагментов из этого урока :
Простая функция, которая выполняет привет мир:
char const* greet()
{
return "hello, world";
}
Код Python Boost, необходимый для его представления Python:
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
Как использовать этот код из python:
>>> import hello_ext
>>> print hello.greet()
hello, world
Движение в противоположном направлении немного сложнее, поскольку python не компилируется с нативным кодом. Вы должны встроить интерпретатор Python в свое приложение C ++, но работа, необходимая для этого, задокументирована здесь . Это пример вызова интерпретатора python и извлечения результата (интерпретатор python определяет класс объекта для использования в C ++):
object result = eval("5 ** 2");
int five_squared = extract<int>(result);