Как работает import_array в numpy C API?

Я пытаюсь преобразовать массив c-style в c ++ в пустой массив и столкнулся с проблемами при попытке использовать функцию «PyArray_SimpleNewFromData». Оказывается мне нужно позвонить

import_array()

Хотя я не понимаю, как вызвать эту функцию. Всякий раз, когда я пытаюсь вызвать его, я получаю ошибку компилятора, которую мне не удается понять. Например, написать следующий простой скрипт:

#include <Python.h>
#include <numpy/arrayobject.h>

int main(){
Py_Initialize();
import_array();
Py_Finalize();
return 0;
}

выдает ошибку компилятора

ошибка: оператор возврата без значения в функции, возвращающей ‘int’ [-fpermissive] import_array ();

Я посмотрел на несколько примеров, таких как:

Пример Numpy C-Api дает SegFault

Пример PyArray_SimpleNewFromData

https://codereview.stackexchange.com/questions/92266/sending-a-c-array-to-python-numpy-and-back

Ошибка Numpy / CAPI с import_array () при компиляции нескольких модулей

Но что бы я ни пытался (даже когда я, похоже, следую этим примерам), мне кажется, что я столкнулся с ошибкой компилятора выше. Что я пропускаю или делаю неправильно? Объяснение того, как должна вызываться функция import_array (), было бы очень кстати. Спасибо за помощь!

Обновить:

Я использую Python 2.7.11, и я думаю, что это может быть связано с тем, что обсуждается здесь:

https://github.com/clemenscorny/brisk/issues/3

но я до сих пор не знаю, как это исправить.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …