将cython嵌入c:多次调用PyInit导致崩溃

时间:2018-09-12 10:06:01

标签: c embed cython

我无法将cython用例嵌入到c共享库中。

设置: 一个Win64应用程序正在使用用c编写的共享库dll。 这个c-dll叫我基于cython的dll。

App-> cDll-> myCythonDll

我无法控制Win64应用程序中的调用,但是根据我的日志记录,该调用很快被多次调用。我缩小了范围,似乎连续两次快速调用PyInit_myCythonDll导致崩溃。但是我不知道为什么,如何进一步分析以及如何正确修复/捕获此错误。代码如下:

// cDll :
#include "myCythDll.h"
int __declspec(dllexport) APIENTRY UserObjectDefinition(double *data)
}
    logger("initializing python");
    Py_Initialize();
    PyInit_myCythonDll(); // <<-- seems to be the crashing point on 2nd call
    myCythonDll_method();
    Py_Finalize();
    logger("finished the python interpreter");
    return (0);
{

// myCythonDll:

cdef public void myCythonDll_method():
    print("inside myCythonDll_method") // do something

关于该怎么做的任何想法?

干杯, 蒂姆

0 个答案:

没有答案