как мне сделать from <package> import <module>
в pybind11?
Я не хочу делать import <package>
, а затем getattr, как показано ниже.
auto package = pybind11::module::import("package");
auto module = package.attr("module")
как мне сделать from <package> import <module>
в pybind11?
Я не хочу делать import <package>
, а затем getattr, как показано ниже.
auto package = pybind11::module::import("package");
auto module = package.attr("module")
Чтобы сделать код 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);
}
auto module = pybind11::module::import("package.module")
. это работает. - person user3713719   schedule 26.10.2019