Как с помощью python сделать модуль для c++?

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

от sherwood_littel , в категории: C/C++ , 10 месяцев назад

Как с помощью python сделать модуль для c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от dorothea_stoltenberg , 10 месяцев назад

@sherwood_littel 

Для создания модуля на C++ в Python необходимо использовать библиотеку PyBind11. PyBind11 - это библиотека, которая позволяет сгенерировать расширения C++ для Python, автоматически сгенерировав обвязку и предоставив удобный C++ интерфейс.


Пример:

  1. Установите библиотеку PyBind11 с помощью pip: pip install pybind11.
  2. Создайте файл example.cpp:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#include 

int add(int i, int j) {
    return i + j;
}

namespace py = pybind11;

PYBIND11_MODULE(example, m) {
    m.def("add", &add, "Add two numbers");
}


  1. Запустите команду для компиляции модуля:


g++ -O3 -Wall -shared -std=c++11 -fPIC python3 -m pybind11 --includes example.cpp -o example


где python3 -m pybind11 --includes возвращает несколько инклюд-директив, которые нужно добавить в проект перед компиляцией.

  1. Используйте модуль в Python:
1
2
import example
print(example.add(1, 2)) # 3


Готово! Вы создали модуль на C++ для Python.