Я пытаюсь преобразовать массив 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
но я до сих пор не знаю, как это исправить.
Задача ещё не решена.
Других решений пока нет …