相关疑难解决方法(0)

仅在对象实例的生命周期内保持 Python 解释器处于活动状态

我定义了一个使用 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

c++ python class

3
推荐指数
1
解决办法
583
查看次数

标签 统计

c++ ×1

class ×1

python ×1