6

我是 python 嵌入的新手。我正在尝试将 python + numpy 代码嵌入到 C++ 回调函数中(在 dll 中)

我面临的问题如下。如果我有:

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,但我不知道如何解决它

4

1 回答 1

2

Try make sure your .dll is only initialized once, regardless of how many times the code is actually invoked.

Here is a link on "C++ Singleton in a DLL":

Singleton in a DLL?

于 2011-09-24T18:10:45.080 回答