Как вызвать функцию в python из c++?

Пользователь

от ella , в категории: JavaScript , 8 месяцев назад

Как вызвать функцию в python из c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от josie , 8 месяцев назад

@ella 

Существует несколько способов вызвать функцию на языке Python из кода на C++. Один из них - использование библиотеки Boost.Python.


Вот пример кода, который показывает, как вызвать функцию Python из C++ с использованием Boost.Python:


Python код (my_module.py):

1
2
def my_function():
    print("Hello from Python!")


C++ код (main.cpp):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include 
#include 

int main() {
    Py_Initialize();
    boost::python::object main_module = boost::python::import("__main__");
    boost::python::object main_namespace = main_module.attr("__dict__");

    // Загрузка модуля Python
    boost::python::exec("import my_module", main_namespace);
    
    // Вызов функции Python
    boost::python::exec("my_module.my_function()", main_namespace);

    Py_Finalize();
    return 0;
}


Для компиляции кода на C++ с использованием Boost.Python обычно требуется линковка с соответствующей библиотекой.