Numpy: 无法导入名称“_validate_lengths”

创建于 2019-01-15  ·  21评论  ·  资料来源: numpy/numpy

它只发生在 numpy 1.16,numpy 1.15 工作正常

Using TensorFlow backend.
Traceback (most recent call last):
  File ".\predict.py", line 4, in <module>
    from frontend import YOLO
  File "C:\RepositoriosGit\keras-yolo2\frontend.py", line 8, in <module>
    from preprocessing import BatchGenerator
  File "C:\RepositoriosGit\keras-yolo2\preprocessing.py", line 1, in <module>
    from imgaug import augmenters as iaa
  File "C:\Program Files\Python36\lib\site-packages\imgaug\__init__.py", line 2, in <module>
    from imgaug.imgaug import *
  File "C:\Program Files\Python36\lib\site-packages\imgaug\imgaug.py", line 22, in <module>
    import skimage.draw
  File "C:\Program Files\Python36\lib\site-packages\skimage\__init__.py", line 167, in <module>
    from .util.dtype import (img_as_float32,
  File "C:\Program Files\Python36\lib\site-packages\skimage\util\__init__.py", line 8, in <module>
    from .arraycrop import crop
  File "C:\Program Files\Python36\lib\site-packages\skimage\util\arraycrop.py", line 8, in <module>
    from numpy.lib.arraypad import _validate_lengths
ImportError: cannot import name '_validate_lengths'

Numpy/Python 版本信息:

>>> import sys, numpy; print(numpy.__version__, sys.version)
1.16.0 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)]

最有用的评论

我已经解决了这个问题,只需使用conda install -c conda-forge scikit-image ,而不是pip install -U scikit-image

所有21条评论

是的,看起来这在 numpy 1.16.0 中消失了。 但是,正如您可能注意到的那样,该函数有一个前置下划线,这意味着 scikit-image 导入该函数有点顽皮。

这里有一个 scikit-image 问题: https :

关闭支持该问题。

谢谢@matthew-brett 的快速回答。

是的,看起来这在 numpy 1.16.0 中消失了。 但是,正如您可能注意到的那样,该函数有一个前置下划线,这意味着 scikit-image 导入该函数有点顽皮。

正确的。 顺便说一下,这个函数最初来自 scikit-image,后来移植到 NumPy,后来我们没有很好地清理。 我认为与解决这个问题相关的痛苦将是一个生动的提醒,以后不要再这样做了。

v0.14.2 已经发布并解决了这个问题。

你好,有同样的问题。 只需更新所有软件包。

Successfully installed PyWavelets-1.0.2 backports.functools-lru-cache-1.5 cloudpickle-0.8.0 cycler-0.10.0 dask-1.1.3 decorator-4.3.2 kiwisolver-1.0.1 matplotlib-2.2.4 networkx-2.2 numpy-1.16.2 pillow-5.4.1 pyparsing-2.3.1 python-dateutil-2.8.0 pytz-2018.9 scikit-image-0.14.2 scipy-1.2.1 setuptools-40.8.0 six-1.12.0 subprocess32-3.5.3 toolz-0.9.0

有人可以帮我解决这个问题吗?

请报告以下输出:

import skimage
print(skimage.__version__)

我有这个

ImportError: cannot import name '_validate_lengths' from 'numpy.lib.arraypad' (/home/liza/anaconda3/lib/python3.7/site-packages/numpy/lib/arraypad.py)

@stefanv如果他有 scikit-image-0.14.2(在你之前的评论中)有意义吗?

对不起,我的大脑显然在放假。

0.14.2 修复了这个问题,所以我想正在导入另一个版本的库。 但我不知道如何证明这一点,因为之前的评论说明了相反的情况。

我已经解决了这个问题,只需使用conda install -c conda-forge scikit-image ,而不是pip install -U scikit-image

我已经解决了这个问题,只需使用conda install -c conda-forge scikit-image ,而不是pip install -U scikit-image

那为我解决了

导入错误:无法从 'numpy.lib.arraypad' 导入名称 '_validate_lengths' (C:\Users\basant\Anaconda3\lib\site-packages\numpy\libarraypad.py)

我有这个问题任何人请给出解决方案

@pandagre请确保您安装了最新版本的 scikit-image。 如果您仍然遇到问题,请打开一个新问题,我们会尽力提供帮助。

我已经解决了这个问题,只需使用conda install -c conda-forge scikit-image ,而不是pip install -U scikit-image

这对我有用,谢谢。

我使用了 conda install -c conda-forge scikit-image 但我得到的版本是 0.14.0。 我仍然有无法导入名称 '_validate_lengths' 的问题

@yexing99请尝试安装最新版本的 scikit-image 和 numpy。 众所周知,这种组合是有效的。 否则,请打开一个新问题并帮助我们在那里调试您的设置,提供所有版本号。

# The following worked fine for me
pip install -U scikit-image

安装收集的包:scikit-image
找到现有安装:scikit-image 0.14.1
卸载 scikit-image-0.14.1:
成功卸载 scikit-image-0.14.1
成功安装 scikit-image-0.15.0

python -c "import skimage"
# No errors, as expected

我已经解决了这个问题,只需使用conda install -c conda-forge scikit-image ,而不是pip install -U scikit-image

由于 conda 安装对我来说太慢了,我尝试了pip install -U scikit-image并且它也有效。

pip install -U scikit-image
这对我有用。

呀一样,
pip install -U scikit-image
这对我有用。

此页面是否有帮助?
0 / 5 - 0 等级