PythonプログラムでCコードをラップするためにweave.inlineを理解しようとしています。以下のコードは、単にscipy.weave.inlineを外部のCライブラリと一緒に使うには?
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
その後、私は外部のライブラリにインラインコードからいくつかの機能を実行したいinl.py 2.
によってnumpyのアレイとmultiplicatesその要素のすべてを取ります。
#include "mult.h"
float mult(float n)
{
return n * 2;
}
mult.h
float inc(float n);
は、今私は、関数MULTを使用したい
mult.c:だから私は2つのファイルを作成し、それは2によってささいな乗算とします私のインラインコードで。しかし、どのように私のCファイルをPythonのインラインコードとリンクさせるのか分かりません。私は共有ライブラリとしてCファイルをコンパイルしようとし、それらをヘッダとライブラリとして渡しましたが、それは無駄でした。助言がありますか?
私はCython、ctypes、SWIGなどのC/Pythonバインディングを試しました。織り方は、Numpy配列をCに渡す最も簡単な方法のように見えるので、コード内に外部ライブラリを使用する方法を探したいと思います。また、すでにCコードを織り込んでいます。うまく動作します。とにかくありがとうございました。 – user517893