Skip to content

Can't run IIRrational 2.5.0 from command line - Scipy._lib.six missing.

Problem

I just upgraded, 2020-10-13, my IIRrational installation from 2.0.11 to 2.5.0. As it exists in its own environment I decided to upgrade this too. When using IIRrational from the command line I receive the following error:

(iirrational) nathan@nahdebian0:~$ IIRrationalV2fit wiener_filters-01-20201013.hdf out_G1L-01-20201013.hdf -D'bar1,L' -Xdb Xdb -Xd Xd -F F -S S --choose shell
Traceback (most recent call last):
  File "/home/nathan/miniconda3/envs/iirrational/bin/IIRrationalV2fit", line 5, in <module>
    from IIRrational.v2.__main__ import main
  File "/home/nathan/miniconda3/envs/iirrational/lib/python3.8/site-packages/IIRrational/__init__.py", line 12, in <module>
    from . import v1
  File "/home/nathan/miniconda3/envs/iirrational/lib/python3.8/site-packages/IIRrational/v1/__init__.py", line 5, in <module>
    from .data2filter import data2filter
  File "/home/nathan/miniconda3/envs/iirrational/lib/python3.8/site-packages/IIRrational/v1/data2filter.py", line 9, in <module>
    from .. import fitters_ZPK
  File "/home/nathan/miniconda3/envs/iirrational/lib/python3.8/site-packages/IIRrational/fitters_ZPK/__init__.py", line 6, in <module>
    from . import codings_s
  File "/home/nathan/miniconda3/envs/iirrational/lib/python3.8/site-packages/IIRrational/fitters_ZPK/codings_s/__init__.py", line 11, in <module>
    from ..MRF import MultiReprFilterS
  File "/home/nathan/miniconda3/envs/iirrational/lib/python3.8/site-packages/IIRrational/fitters_ZPK/MRF.py", line 16, in <module>
    from ..external import scipy_optimize
  File "/home/nathan/miniconda3/envs/iirrational/lib/python3.8/site-packages/IIRrational/external/scipy_optimize/__init__.py", line 5, in <module>
    from .trf import trf
  File "/home/nathan/miniconda3/envs/iirrational/lib/python3.8/site-packages/IIRrational/external/scipy_optimize/trf.py", line 137, in <module>
    from scipy._lib.six import string_types
ModuleNotFoundError: No module named 'scipy._lib.six'

It seems to be missing/requiring _scipy.lib.six.

More

Below I outline my environment (declarative and IIRrational were installed with PyPi after using conda to install the other dependencies):

(iirrational) nathan@nahdebian0:~$ conda list
  packages in environment at /home/nathan/miniconda3/envs/iirrational:
 
  Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
attrs                     20.2.0                     py_0  
backcall                  0.2.0                      py_0  
blas                      1.0                         mkl  
ca-certificates           2020.7.22                     0  
certifi                   2020.6.20                py38_0  
cycler                    0.10.0                   py38_0  
dbus                      1.13.16              hb2f20db_0  
declarative               1.2.0                    pypi_0    pypi
decorator                 4.4.2                      py_0  
expat                     2.2.10               he6710b0_2  
fontconfig                2.13.0               h9420a91_0  
freetype                  2.10.3               h5ab3b9f_0  
glib                      2.65.0               h3eb4bd4_0  
gst-plugins-base          1.14.0               hbbd80ab_1  
gstreamer                 1.14.0               hb31296c_0  
h5py                      2.10.0           py38hd6299e0_1  
hdf5                      1.10.6               hb1b8bf9_0  
icu                       58.2                 he6710b0_3  
iirrational               2.5.0                    pypi_0    pypi
iniconfig                 1.0.1                      py_0  
intel-openmp              2020.2                      254  
ipython                   7.18.1           py38h5ca1d4c_0  
ipython_genutils          0.2.0                    py38_0  
jedi                      0.17.2                   py38_0  
jpeg                      9b                   h024ee3a_2  
kiwisolver                1.2.0            py38hfd86e86_0  
lcms2                     2.11                 h396b838_0  
ld_impl_linux-64          2.33.1               h53a641e_7  
libedit                   3.1.20191231         h14c3975_1  
libffi                    3.3                  he6710b0_2  
libgcc-ng                 9.1.0                hdf63c60_0  
libgfortran-ng            7.3.0                hdf63c60_0  
libpng                    1.6.37               hbc83047_0  
libstdcxx-ng              9.1.0                hdf63c60_0  
libtiff                   4.1.0                h2733197_1  
libuuid                   1.0.3                h1bed415_2  
libxcb                    1.14                 h7b6447c_0  
libxml2                   2.9.10               he19cac6_1  
lz4-c                     1.9.2                heb0550a_3  
matplotlib                3.3.1                         0  
matplotlib-base           3.3.1            py38h817c723_0  
mkl                       2020.2                      256  
mkl-service               2.3.0            py38he904b0f_0  
mkl_fft                   1.2.0            py38h23d657b_0  
mkl_random                1.1.1            py38h0573a6f_0  
more-itertools            8.5.0                      py_0  
ncurses                   6.2                  he6710b0_1  
numpy                     1.19.1           py38hbc911f0_0  
numpy-base                1.19.1           py38hfa32c7d_0  
olefile                   0.46                       py_0  
openssl                   1.1.1h               h7b6447c_0  
packaging                 20.4                       py_0  
parso                     0.7.0                      py_0  
pcre                      8.44                 he6710b0_0  
pexpect                   4.8.0                    py38_0  
pickleshare               0.7.5                 py38_1000  
pillow                    7.2.0            py38hb39fc2d_0  
pip                       20.2.3                   py38_0  
pluggy                    0.13.1                   py38_0  
prompt-toolkit            3.0.7                      py_0  
ptyprocess                0.6.0                    py38_0  
py                        1.9.0                      py_0  
pygments                  2.7.1                      py_0  
pyparsing                 2.4.7                      py_0  
pyqt                      5.9.2            py38h05f1152_4  
pytest                    6.1.1                    py38_0  
python                    3.8.5                h7579374_1  
python-dateutil           2.8.1                      py_0  
pyyaml                    5.3.1            py38h7b6447c_1  
qt                        5.9.7                h5867ecd_1  
readline                  8.0                  h7b6447c_0  
scipy                     1.5.2            py38h0b6359f_0  
setuptools                50.3.0           py38hb0f4dca_1  
sip                       4.19.13          py38he6710b0_0  
six                       1.15.0                     py_0  
sqlite                    3.33.0               h62c20be_0  
tk                        8.6.10               hbc83047_0  
toml                      0.10.1                     py_0  
tornado                   6.0.4            py38h7b6447c_1  
traitlets                 5.0.4                    py38_0  
wcwidth                   0.2.5                      py_0  
wheel                     0.35.1                     py_0  
xz                        5.2.5                h7b6447c_0  
yaml                      0.2.5                h7b6447c_0  
zlib                      1.2.11               h7b6447c_3  
zstd                      1.4.5                h9ceee32_0

I have tried uninstalling IIRrational, declarative, and then scipy; followed by a re-installation in reverse order. This didn't resolve the issue.

I have also tried:

>>> from scipy import _lib
>>> _lib.test()
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.1.1, py-1.9.0, pluggy-0.13.1
rootdir: /home/nathan
collected 45 items / 2 deselected / 43 selected                                

miniconda3/envs/iirrational/lib/python3.8/site-packages/scipy/_lib/tests/test__gcutils.py . [  2%]
.....                                                                    [ 13%]
miniconda3/envs/iirrational/lib/python3.8/site-packages/scipy/_lib/tests/test__pep440.py . [ 16%]
........                                                                 [ 34%]
miniconda3/envs/iirrational/lib/python3.8/site-packages/scipy/_lib/tests/test__testutils.py . [ 37%]
.                                                                        [ 39%]
miniconda3/envs/iirrational/lib/python3.8/site-packages/scipy/_lib/tests/test__threadsafety.py . [ 41%]
.                                                                        [ 44%]
miniconda3/envs/iirrational/lib/python3.8/site-packages/scipy/_lib/tests/test__util.py . [ 46%]
..............                                                           [ 79%]
miniconda3/envs/iirrational/lib/python3.8/site-packages/scipy/_lib/tests/test_ccallback.py s [ 81%]
s..                                                                      [ 88%]
miniconda3/envs/iirrational/lib/python3.8/site-packages/scipy/_lib/tests/test_deprecation.py . [ 90%]
                                                                         [ 90%]
miniconda3/envs/iirrational/lib/python3.8/site-packages/scipy/_lib/tests/test_import_cycles.py . [ 93%]
                                                                         [ 93%]
miniconda3/envs/iirrational/lib/python3.8/site-packages/scipy/_lib/tests/test_tmpdirs.py . [ 95%]
..                                                                       [100%]

================= 41 passed, 2 skipped, 2 deselected in 7.98s ==================
True
>>> dir(_lib)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_ccallback', '_ccallback_c', '_fpumode', '_gcutils', '_pep440', '_test_ccallback', '_test_deprecation_call', '_test_deprecation_def', '_testutils', '_threadsafety', '_tmpdirs', '_uarray', '_util', 'decorator', 'deprecation', 'test', 'tests', 'uarray']

This suggests that indeed there is no scipy._lib.six to import.