Кажется, я нашел ответ
Хотя я работаю над проектом Linux, я нахожу эту ссылку: Встраивание Python в проект C ++ с Visual Studio , с его примером проекта,очень образовательный,
и оглядываясь на встроенную документацию pybind11 , раздел 13.4 в PDF, показывает, что это просто сделать так:
Включить "py :: module"член класса C ++, который будет инициализирован с помощью py :: module :: import ("имя_модуля");
, а затем вызовет C'tor и т. д., используя его
, например:
// class member
py::module mModule;
и
//initialization
mModule = py::module::import("module_name");
mModule .attr("initialize").call(mArg1, mArg2);
Поскольку это одноэлементный класс в библиотеке, а не обычный пример main (), для времени жизни интерпретатора, я считаю, что лучше использовать:
py::initialize_interpreter();
{
//call py code...
}
и затем вызовите py::finalize_interpreter();
при уничтожении этого экземпляра
вместо обычного py::scoped_interpreter guard{};
, который заканчивает свой срок службы в конце области действия