我正在尝试使用scipy.weave.inline将ctype变量传递给内联c代码。有人会认为这很简单。使用普通的python对象类型进行文档时文档很好,但是,它们具有比我需要的更多的功能,而且在使用C时使用ctypes更有意义。但是,我不确定我的错误在哪里。
from scipy.weave import inline
from ctypes import *
def test():
y = c_float()*50
x = pointer(y)
code = """
#line 120 "laplace.py" (This is only useful for debugging)
int i;
for (i=0; i < 50; i++) {
x[i] = 1;
}
"""
inline(code, [x], compiler = 'gcc')
return y
output = test()
pi = pointer(output)
print pi[0]
答案 0 :(得分:4)
scipy.weave对ctypes一无所知。输入仅限于大多数基本内置类型,numpy数组,wxPython对象,VTK对象和SWIG包装对象。但是,您可以添加自己的转换器代码。目前没有太多关于此的文档,但您可以将SWIG implementation视为一个有启发性的示例。