pybind11是否支持“从<package>导入<module>”样式导入?

时间:2019-10-22 00:39:21

标签: python-3.x pybind11

我如何在pybind11中from <package> import <module>

我不想先做import <package>然后再执行getattr,如下所示。

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

1 个答案:

答案 0 :(得分:0)

要使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