поддерживает ли pybind11 импорт из стиля <package>import <module>? - PullRequest
0 голосов
/ 22 октября 2019

как мне сделать from <package> import <module> в pybind11?

Я не хочу делать import <package> и затем getattr, как показано ниже.

auto package = pybind11::module::import("package");
auto module =  package.attr("module")

1 Ответ

0 голосов
/ 23 октября 2019

Чтобы сделать код C ++ полностью эквивалентным from <package> import <module> в глобальной области видимости, вам нужно установить атрибут модуля, в который вы импортируете:

PYBIND11_MODULE(example, m) {
    m.doc() = "pybind11 example plugin"; // optional module docstring

    auto package = pybind11::module::import("package");
    auto module =  package.attr("module")
    m.add_object("module", module);
}

pybind11 :: module :: add_object

...