使用python scipy.weave内联ctype变量?

时间:2009-07-16 14:07:24

标签: python scipy inline-code

我正在尝试使用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]

1 个答案:

答案 0 :(得分:4)

scipy.weave对ctypes一无所知。输入仅限于大多数基本内置类型,numpy数组,wxPython对象,VTK对象和SWIG包装对象。但是,您可以添加自己的转换器代码。目前没有太多关于此的文档,但您可以将SWIG implementation视为一个有启发性的示例。