我定义了一个使用 python 解释器的类,如下所示:
class pythonInt
{
public:
pythonInt(const char* fname) {
py::initialize_interpreter();
m_Module = py::module::import(fname);
}
~pythonInt() {
py::finalize_interpreter();
}
py::module m_Module;
// ... other class members and functions that uses m_Module
};
int main()
{
pythonInt *p1 = new pythonInt("pybind_test1");
delete(p1);
pythonInt *p2 = new pythonInt("pybind_test1");
delete(p2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
一旦类实例被破坏,Access violation reading location当它达到删除实例时,我就会收到错误_Py_Dealloc(op)。如何完成解释器,以便我可以成功删除以前创建的类实例p1并安全地创建新的类实例p2?