Numpy: não pode importar o nome '_validate_lengths'

Criado em 15 jan. 2019  ·  21Comentários  ·  Fonte: numpy/numpy

ocorre apenas com numpy 1.16, numpy 1.15 funciona bem

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'

Informações sobre a versão 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)]

Comentários muito úteis

Já resolvi este problema, basta usar conda install -c conda-forge scikit-image , não pip install -U scikit-image

Todos 21 comentários

Sim, parece que isso desapareceu no numpy 1.16.0. Mas, como você provavelmente notou, a função tem um sublinhado prefixado, o que significa que scikit-image estava sendo um pouco perverso ao importar essa função.

Há um problema com a imagem scikit aqui: https://github.com/scikit-image/scikit-image/issues/3649

Fechando em favor dessa questão.

Obrigado @matthew-brett pela sua resposta rápida.

Sim, parece que isso desapareceu no numpy 1.16.0. Mas, como você provavelmente notou, a função tem um sublinhado prefixado, o que significa que scikit-image estava sendo um pouco perverso ao importar essa função.

Correto. Para dar algum contexto, esta função veio originalmente do scikit-image e foi portada para o NumPy, e não limpamos muito bem depois. Acho que a dor associada a consertar isso será um lembrete vívido de não fazer isso novamente no futuro.

A v0.14.2 foi lançada e resolve o problema.

Oi, tenho o mesmo problema. Basta atualizar todos os pacotes.

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

Alguém pode me ajudar a resolver esse problema?

Relate o resultado do seguinte:

import skimage
print(skimage.__version__)

eu tenho isto

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

@stefanv faria sentido se ele tivesse scikit-image-0.14.2 (no comentário antes do seu)?

Desculpe, meu cérebro estava claramente de férias.

0.14.2 corrigiu esse problema, então imagino que outra versão da biblioteca esteja sendo importada. Mas não sei como demonstrar isso, visto que o comentário anterior afirma o contrário.

Já resolvi este problema, basta usar conda install -c conda-forge scikit-image , não pip install -U scikit-image

Já resolvi este problema, basta usar conda install -c conda-forge scikit-image , não pip install -U scikit-image

Isso resolveu para mim

ImportError: não é possível importar o nome '_validate_lengths' de 'numpy.lib.arraypad' (C: \ Users \ basant \ Anaconda3 \ lib \ site-packages \ numpy \ libarraypad.py)

eu tenho esse problema, por favor, dê a solução para isso

@pandagre Certifique-se de ter a versão mais recente do scikit-image instalada. Se você ainda tiver problemas, abra um novo problema e tentaremos ajudar.

Já resolvi este problema, basta usar conda install -c conda-forge scikit-image , não pip install -U scikit-image

Isso funciona para mim, obrigado.

Usei conda install -c conda-forge scikit-image, mas a versão que obtive é 0.14.0. Ainda tenho o problema de não consigo importar o nome '_validate_lengths'

@ yexing99 Tente e instale a versão mais recente de scikit-image e numpy. Essa combinação é conhecida por funcionar. Caso contrário, abra um novo problema e nos ajude a depurar sua configuração, fornecendo todos os números de versão.

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

Instalando pacotes coletados: scikit-image
Instalação existente encontrada: scikit-image 0.14.1
Desinstalando scikit-image-0.14.1:
Scikit-image-0.14.1 desinstalado com sucesso
Scikit-image-0.15.0 instalado com sucesso

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

Já resolvi este problema, basta usar conda install -c conda-forge scikit-image , não pip install -U scikit-image

Como a instalação do conda é muito lenta para mim, tentei pip install -U scikit-image e também funcionou.

pip install -U scikit-image
Isso funcionou para mim.

Sim mesmo,
pip install -U scikit-image
Isso funcionou para mim.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

perezpaya picture perezpaya  ·  4Comentários

astrofrog picture astrofrog  ·  4Comentários

ghost picture ghost  ·  4Comentários

keithbriggs picture keithbriggs  ·  3Comentários

navytux picture navytux  ·  4Comentários