У меня есть код написан на Python, для которого вывод является массивом numpy, и теперь я хочу отправить этот вывод в код C++
, где будет выполняться тяжелая часть вычислений.
Я пробовал использовать cython public cdef
, но у меня есть некоторые проблемы. Буду признателен за вашу помощь! Вот мой код:
pymodule.pyx
:
from pythonmodule import result # result is my numpy array
import numpy as np
cimport numpy as np
cimport cython
@cython.boundscheck(False)
@cython.wraparound(False)
cdef public void cfunc():
print 'I am in here!!!'
cdef np.ndarray[np.float64_t, ndim=2, mode='c'] res = result
print res
Как только это cythonized, я вызываю:
pymain.c
:
#include <Python.h>
#include <numpy/arrayobject.h>
#include "pymodule.h"
int main() {
Py_Initialize();
initpymodule();
test(2);
Py_Finalize();
}
int test(int a)
{
Py_Initialize();
initpymodule();
cfunc();
return 0;
}
Я получаю NameError
для переменной result
в C++
. Я попытался определить его с помощью указателей и косвенно назвать его другими функциями, но массив остается невидимым. Я уверен, что ответ довольно прост, но я просто не понимаю. Спасибо за вашу помощь!