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.