Я пытаюсь преобразовать массив 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
но я до сих пор не знаю, как это исправить.