【发布时间】:2017-02-02 17:41:36
【问题描述】:
我正在尝试从使用 SWIG for Python 包装的 C 函数输出值数组。我尝试做的方式是使用以下类型映射。
伪代码:
int oldmain() {
float *output = {0,1};
return output;
}
类型图:
%typemap(out) float* {
int i;
$result = PyList_New($1_dim0);
for (i = 0; i < $1_dim0; i++) {
PyObject *o = PyFloat_FromDouble((double) $1[i]);
PyList_SetItem($result,i,o);
}
}
我的代码编译得很好,但是当我运行访问这个函数时它挂起(没有更多的方法来调试它)。
对我哪里出错有什么建议吗?
谢谢。
【问题讨论】:
-
您能分享您的 Makefile 或类似文件吗?你可能会发现 Cython 比 SWIG 更容易,除非你可能会做更多的语言而不仅仅是 Python。
-
谢谢,Oleksiy 的回答解决了我的问题,但正如你所说,Cython 似乎更容易,我正在探索。再次感谢。
标签: python return-value swig