如何捕获由Py_Finalize()引发的退出信号?

时间:2018-10-04 10:25:35

标签: python c++ pybind11

我正在使用 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()

0 个答案:

没有答案