我正在尝试理解weave.inline,以在我的Python程序中包装C代码。下面的代码仅将Numpy数组的所有元素乘以2。
现在我想在我的内联代码中使用mult函数。但是我不知道如何将我的C文件与Python内联代码链接起来。我尝试将C文件编译为共享库,并将它们作为头文件和库传递给weave,但是都没有成功。有什么建议吗?
inl.py
import numpy
import scipy.weave
a = numpy.array([1.0, 2.0, 3.0])
N = a.shape[0]
print a
code = \
"""
int i;
for(i = 0; i < N; i++)
{
a[i] = a[i] * 2;
}
"""
scipy.weave.inline(code, ['a','N'])
print a
接下来我想将一些内联代码中的函数移到外部库中。让我们以乘以2为例。因此,我创建了两个文件:
mult.c
#include "mult.h"
float mult(float n)
{
return n * 2;
}
mult.h
float inc(float n);
现在我想在我的内联代码中使用mult函数。但是我不知道如何将我的C文件与Python内联代码链接起来。我尝试将C文件编译为共享库,并将它们作为头文件和库传递给weave,但是都没有成功。有什么建议吗?