将 Python + numpy 代码嵌入 C++ dll 回调中
我刚开始接触Python嵌入。
我想在一个C++的回调函数里(在一个dll里面)嵌入Python和Numpy的代码。
我遇到的问题是这样的。如果我有:
Py_Initialize();
// some python glue
// python invocation
Py_Finalize();
一切都运行得很好。
但是如果我有:
Py_Initialize();
_import_array(); //to initialize numpy C-API
// some python glue + numpy array object creation
// python invocation via PyObject_CallObject()
Py_Finalize();
在第二次调用到_import_array();的时候就崩溃了(这意味着第一次回调是可以工作的)。
如果我只进行一次Python和Numpy的初始化,然后在析构函数里进行清理(也就是说不是每次都初始化和清理),那么在离开回调的时候就会崩溃。
我猜这里的问题可能出在Numpy上,但我不知道该怎么解决。