代码(基于Numpy C-Api 示例给出了 SegFault。他们所关注的教程的链接已失效,我还没有找到好的教程):
#include <Python.h>
#define NPY_NO_DEPRECATED_API NPY_API_VERSION
#include "numpy/arrayobject.h"
int main()
{
Py_Initialize();
import_array();
int typenum;
PyArrayObject *alpha;
PyObject *a = NULL;
int n = 100;
int nd = 1;
int dims[nd];
dims[0] = n;
a= PyArray_FromDims(nd, dims, NPY_DOUBLE);
alpha = (PyArrayObject*) a;
typenum = PyArray_DIMS(alpha)[0];
printf("%i",typenum);
PyRun_SimpleString("print 'Hello Python C/API'");
Py_Finalize();
return 0;
}
gcc -g main1.cpp -I/.../include/python2.7 -I/.../numpy/numpy/core/include -lpython2.7 -lstdc++; ./a.out
在a= PyArray_FromDims(nd, dims, NPY_DOUBLE);
.
我在一个已激活的虚拟环境中。“...”给出了我的虚拟环境的路径,其中 numpy 作为子目录存在,并且已使用 pip install -e numpy 安装。