[Numpy-discussion] need help building a numpy extension that uses fftpack on windows
Ralf Gommers
ralf.gommers at googlemail.com
Thu Jun 2 15:07:26 EDT 2011
On Wed, Jun 1, 2011 at 5:45 PM, martin smith <gmane at blindgoat.org> wrote:
> I have a bit of code that performs multi-taper power spectra using numpy
> and a C extension module. The C portion consists of an interface file
> and a python-unaware computational file. The latter invokes fftpack.
>
> The straightforward setup.py appended below works fine on Linux. On
> Windows using MinGW it's not so good. I first created a libpython27.a
> file following instructions on the web. The C code now compiles but
> fails to link since there is no fftpack_lite.so on Windows. I can't
> find an fftpack_lite.dll (or even the source for fftpack_lite) and don't
> know where to turn.
>
Python dll's on Windows have a .pyd extension, there should be a
fftpack_lite.pyd file. But you should be able to just leave off the
extension, so it does the right thing on any platform.
Also, the way you specified library_dirs doesn't work if numpy is not in
site-packages, better to use something like:
library_dirs = [os.path.join(numpy.__path__[0], 'fft')]
> Trying to sort these problems out in Windows is (to me) difficult and
> bewildering. I'd much appreciate any advice.
>
> - martin smith
>
> (BTW: the code is unencumbered and available for the asking.)
>
> After search for multi-taper I found
http://projects.scipy.org/scipy/ticket/608. Too bad no one has gotten around
to review your contribution before, it sounds like a good addition for the
scipy.signal module.
Cheers,
Ralf
>
> ----------------------------------------------------------------------
> from numpy.distutils.core import setup
> from numpy.distutils.extension import Extension
> import os.path
> import distutils.sysconfig as sf
>
> use_fftpack = 1
>
> if use_fftpack:
>
> pymutt_module = Extension(
> 'pymutt',
> ['pymutt.c'],
> library_dirs = [os.path.join(sf.get_python_lib(), 'numpy', 'fft')],
> define_macros = [('USE_FFTPACK', None)],
> libraries = [':fftpack_lite.so'],
> )
>
> else:
>
> pymutt_module = Extension(
> 'pymutt',
> ['pymutt.c'],
> libraries = ['fftw3'],
> )
>
> setup(name='pymutt',
> version='1.0',
> description = "numpy support for multi-taper fourier transforms",
> author = "Martin L. Smith",
> long_description =
> '''
> Implements a numpy interface to an implementation of Thomson's
> multi-taper fourier transform algorithms. The key C module (mtbase.c)
> is derived from code written and made freely available by J. M. Lees and
> Jeff Park.
> ''',
> ext_modules=[pymutt_module],
> )
>
> ----------------------------------------------------------------------------------------
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20110602/1eedac3e/attachment.html>
More information about the NumPy-Discussion
mailing list