2015-08-13 3 views
0

Я получаю следующее сообщение об ошибке при отладке расширение C в БГДвина Сегментация с PyType_IsSubtype

Program received signal SIGSEGV, Segmentation fault. 
PyType_IsSubtype (a=0xc0089ca71d1afbb6, b=0x7fffed5441e0) at Objects/typeobject.c:1150 
1150 Objects/typeobject.c: No such file or directory. 
     in Objects/typeobject.c 

Все, что я нашел об этом, до сих пор, было сообщение об ошибке относительно Python 3.4 в Debian 6.

Использование: Python 2.7.6/CentOS 6,6

ответ

1

Я получил его решить. В моем расширенном коде C я создавал несколько объектов:

PyArrayObject *py_u2r, *py_u2l, *py_u2s; 

py_u2r= (PyArrayObject *) PyArray_FromDims(2,dims,NPY_CDOUBLE); 
py_u2l= (PyArrayObject *) PyArray_FromDims(2,dims,NPY_CDOUBLE); 
py_u2s= (PyArrayObject *) PyArray_FromDims(2,dims,NPY_CDOUBLE); 

Только проблема заключалась в том, что я не возвращал их должным образом. Таким образом, я просто добавил следующее обратку и он работает в настоящее время:

return Py_BuildValue("OOO", py_u2r, py_u2l, py_u2s); 

В этом link я понял, о Py_BuildValue синтаксис, который довольно прост.

Смежные вопросы