как мне сделать from <package> import <module> в pybind11?
from <package> import <module>
Я не хочу делать import <package> и затем getattr, как показано ниже.
import <package>
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); }
pybind11 :: module :: add_object