pyfftwとは
fftwのpythonラッパー.Scipyより速いとか.
普通に落としてきた方が早そう
あとから気づいたが,whlが普通に落ちているので,それを環境に合わせてダウンロードすると普通にうまくいった.
https://bintray.com/hgomersall/generic/PyFFTW-development-builds/view#
からバージョンを選んで,Filesから自分の環境(pythonのバージョン,64bit/32bit)に合わせて適当にダウンロードしよう.
自前ビルド
とはいってもfftwのdllは落としてくることを想定.
FFTWのDLLを手に入れる
http://www.fftw.org/install/windows.html
から自分の環境に合わせてプレビルド済みのdllを落としてくる.
FFTWの静的ライブラリを生成
上のサイトのドキュメントに書いてあるように,libファイルは別途自前で生成しなければならない
visual Studioを使う場合.
libにパスが通ってない場合があるのでその場合,適宜パスを追加する.
自分の場合はC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
にパスを通す必要があった.
lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def
のようにして静的ライブラリを生成.64bitマシンの場合は(普通そうだと思うがlib /machine:x64 /def:libfftw3l-3.def
)
のようにする.
配置
pip download pyfftw
でソースコードを落としてくる.tar.xzなので
tar -zxvf pyFFTW-0.10.4.tar.gz
などとして,解凍.(最近のwindowsではtarコマンドが使える.https://kledgeb.blogspot.com/2017/12/windows-14-windowscurltar.html)
pyfftwの中身から必要なファイル(dllやlibファイルなど)をpyfftw
ファイル配下に配置
微妙に修正
このままだとビルドが通らなかった
https://github.com/pyFFTW/pyFFTW/issues/228
これに従ってpyFFTW.egg-info/SOURCES.txtを修正
/home/whg/Projects/github/pyFFTW/pyfftw/pyfftw.c
/home/whg/Projects/github/pyFFTW/pyfftw/pyfftw.pyx
/home/whg21/Projects/github/pyFFTW/pyfftw/pyfftw.c
/home/whg21/Projects/github/pyFFTW/pyfftw/pyfftw.pyx
を
pyfftw/pyfftw.c
pyfftw/pyfftw.pyx
pyfftw/pyfftw.c
pyfftw/pyfftw.pyx
に修正する.
python setup.py
あとはpython setup.py install
を最上位ディレクトリでやったら入った.