С pybind11, как разделить мой код на несколько модулей / файлов? - PullRequest
0 голосов
/ 13 декабря 2018

С pybind11, как разбить мой код на несколько модулей / файлов?Это ускорит этап компиляции.Документация Pybind11 рассматривает особый случай расширения типа, объявленного в другом модуле расширения, здесь .Но не более общий / более простой.

1 Ответ

0 голосов
/ 15 декабря 2018

Согласно FAQ по pybind11, здесь , PYBIND11_MODULE(module_name, m){ /* bindings */ } можно разделить на несколько функций, определенных в разных файлах.Пример:

example.cpp:

void init_ex1(py::module &);
void init_ex2(py::module &);
/* ... */

PYBIND11_MODULE(example, m) {
    init_ex1(m);
    init_ex2(m);
    /* ... */
}

ex1.cpp:

void init_ex1(py::module &m) {
    m.def("add", [](int a, int b) { return a + b; });
}

ex2.cpp:

void init_ex2(py::module &m) {
    m.def("sub", [](int a, int b) { return a - b; });
}
...