pythonpython-3.xversionimporterrorpyfftw

Import Error with pyFFTW (scipy.fftpack) in Python 3.8


I have a numerical simulation program that works fine at the institute I'm in, there I have a Win10 box where I installed Python 3.7.3 64-bit. I am trying to run the same program in my laptop with Manjaro and Python 3.8.1 (It was also 3.7.3 at the time I installed it, but rolling release ¬¬). The problem is that in my laptop I am getting the following error when trying to import pyFFTW

Traceback (most recent call last):
  File "/home/User/Documents/Program.py", line 22, in <module>
    import pyfftw  # Pythonic wrapper for FFTW
  File "/usr/lib/python3.8/site-packages/pyfftw/__init__.py", line 43, in <module>
    from . import interfaces
  File "/usr/lib/python3.8/site-packages/pyfftw/interfaces/__init__.py", line 237, in <module>
    from . import scipy_fftpack
  File "/usr/lib/python3.8/site-packages/pyfftw/interfaces/scipy_fftpack.py", line 65, in <module>
    from scipy.fftpack import (dct, idct, dst, idst, diff, tilbert, itilbert,
ImportError: cannot import name '_fftpack' from 'scipy.fftpack' (/usr/lib/python3.8/site-packages/scipy/fftpack/__init__.py)

Process finished with exit code 1

As far as I can tell the problem is arising from the libraries within the pyFFTW package itself, but I have no idea how to fix it. I tried uninstalling and reinstalling both pyFFTW (1.17.4) and scipy (1.4.1) with little success.

I thought that I could install another version on Python in my Manjaro box and simply "match" all the versions of the packages in the Win box, but I'm looking for a less nuclear solution.

Just for completeness sake, MWE:

$ python
>>> import pyfftw

Solution

  • This is fixed in master. A release should be made shortly. You can either wait for that or pull from github.

    Edit: Release made that fixes this on Feb 3 2020.