我试图从python运行我的C ++代码,因为我想将其与具有python接口的开源软件耦合,因此我使用cython来进行包装。我的C ++代码可以从python编译,但是在返回浮点向量的结果时遇到一些问题。我可以将单个浮点数或整数返回给python,但不能返回向量。我尝试返回指针,就像通常对C ++函数所做的那样,但是python无法识别C ++形式的指针。
这是一个简化的代码,显示我的意思。
我的.hpp文件是:
#include "mpi.h"
float my_cppfun(int D);
我的.cpp文件:
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include "my_cpp.hpp"
float my_cppfun(int D)
{
float DD[D];
int i;
for (i=0;i<D;i++){
DD[i]=i;
}
return DD[i-1];
//return DD instead of DD[i-1]
}
我的.pyx文件是:
cdef extern from "my_cpp.hpp":
float my_cppfun(int)
def my_cpp(int D):
return my_cppfun(D)
我的.py文件是:
from mpi4py import MPI
from pympi import my_cpp
y=my_cpp(3)
print y
还有setup.py文件,此文件目前正在运行。我想知道如何返回DD数组而不是单个浮点值(DD [i-1])。 在此先感谢您的帮助。