scrublet icon indicating copy to clipboard operation
scrublet copied to clipboard

issue with `_validate_lengths`: needed to downgrade to `numpy 1.15`

Open aopisco opened this issue 5 years ago • 1 comments

When doing from numpy.lib.arraypad import _validate_lengths

I'm getting the following error:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-6-30d1a12bd26c> in <module>
----> 1 from numpy.lib.arraypad import _validate_lengths

ImportError: cannot import name '_validate_lengths'

even after force-reinstalling scikit-image and numpy.

pip install scikit-image --force-reinstall
Successfully installed PyWavelets-1.0.2 cloudpickle-0.8.0 cycler-0.10.0 dask-1.1.3 decorator-4.3.2 kiwisolver-1.0.1 matplotlib-3.0.3 networkx-2.2 numpy-1.16.2 pillow-5.4.1 pyparsing-2.3.1 python-dateutil-2.8.0 scikit-image-0.14.2 scipy-1.2.1 setuptools-40.8.0 six-1.12.0 toolz-0.9.0
pip install numpy --force-reinstall
Successfully installed numpy-1.16.2

Way to reproduce: from numpy.lib.arraypad import _validate_lengths

Version information

from __future__ import print_function
import sys; print(sys.version)
import platform; print(platform.platform())
import skimage; print("scikit-image version: {}".format(skimage.__version__))
import numpy; print("numpy version: {}".format(numpy.__version__))
3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) 
[GCC 7.2.0]
Linux-4.4.0-1075-aws-x86_64-with-debian-stretch-sid
scikit-image version: 0.14.2
numpy version: 1.16.2

this is a known issue (https://github.com/scikit-image/scikit-image/issues/3780) can you do something like this:

from distutils import LooseVersion as Version
old_numpy = Version(np.__version__) < Version('1.16')
if old_numpy:
    from numpy.lib.arraypad import _validate_lengths
else:
    from numpy.lib.arraypad import _as_pairs

aopisco avatar Mar 06 '19 23:03 aopisco

Hi @aopisco, apologies for the delayed response. Would you mind clarifying when exactly you are getting this error? I can reproduce the error as you suggested (from numpy.lib.arraypad import _validate_lengths), but I don't encounter it in the usual Scrublet workflow.

swolock avatar Apr 17 '19 15:04 swolock