我正在使用 pybind11 通过pybind11::scoped_interpreter guard{}
将python解释器嵌入C ++。我导入自己的模块,运行一些功能,然后退出程序。软件退出后, pybind11 最终会调用Py_Finalize()
。当Py_Finalize()
在C ++内部调用时,我想在python模块内部捕获退出信号以调用一些析构函数。我该如何实现?
C ++代码:
pybind11::scoped_interpreter guard{};
py::module my_module = py::module::import("my_module");
my_module.attr("my_function")(someData);
python代码( my_module.py ):
session.init()
def my_func(input):
output = session.foo(input)
return output
#how to catch exit signal to run this function
def run_at_exit(session):
session.finalize()