问题描述
我正在尝试将 Python 脚本嵌入到我的 C++ 应用程序中。
我想知道是否必须在同一范围内调用 py::initialize_interpreter()
和 py::finalize_interpreter()
,如下所示。
if(condition){
py::initialize_interpreter();
{
other pybind processes
}
py::finalize_interpreter();
}
或者我可以这样做:
if(condition){
py::initialize_interpreter();
}
/*** other C++ code***/
if(condition){
other pybind processes
}
/*** other C++ code***/
if(condition){
py::finalize_interpreter();
}
这行得通吗?
谢谢!
解决方法
不,您不需要在相同的范围内调用它,但是您需要注意,一旦 py::initialize_interpreter();
被初始化,您就可以不再次调用它。要再次调用它,您首先需要调用 py::finalize_interpreter();
。