我正在尝试在python的C扩展中使用NumPy。
我遇到了我无法解释的段错误,我将其缩小为这个简单的示例。
#include "numpy/arrayobject.h"
int main()
{
int dims[] = {1};
double d[] = {1};
PyArray_SimpleNewFromData(1, dims, NPY_DOUBLE, &d);
}
答案 0 :(得分:1)
https://docs.scipy.org/doc/numpy/user/c-info.how-to-extend.html
必须声明此函数,以便外部代码可以看到它 例行公事除了添加所需的方法和常量外, 此子例程还必须包含import_array()和/或 import_ufunc()取决于所需的C-API。忘记放置 这些命令将显示为难看的细分错误(崩溃) 实际调用任何C-API子例程后。
我还必须事先添加Py_Initialize()
,因为这是一个独立的示例,无法像通常那样通过Python虚拟机运行。