Numpy: impossible d'importer le nom '_validate_lengths'

Créé le 15 janv. 2019  ·  21Commentaires  ·  Source: numpy/numpy

cela ne se produit qu'avec numpy 1.16, numpy 1.15 fonctionne bien

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'

Informations sur la version 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)]

Commentaire le plus utile

J'ai déjà résolu ce problème, utilisez simplement conda install -c conda-forge scikit-image , pas pip install -U scikit-image

Tous les 21 commentaires

Oui, il semble que cela ait disparu dans numpy 1.16.0. Mais, comme vous l'avez probablement remarqué, la fonction a un trait de soulignement préfixé, ce qui signifie que scikit-image était un peu méchant en important cette fonction.

Il y a un problème scikit-image ici : https://github.com/scikit-image/scikit-image/issues/3649

Clôture en faveur de cette question.

Merci @matthew-brett pour votre réponse rapide.

Oui, il semble que cela ait disparu dans numpy 1.16.0. Mais, comme vous l'avez probablement remarqué, la fonction a un trait de soulignement préfixé, ce qui signifie que scikit-image était un peu méchant en important cette fonction.

Correct. Pour donner un peu de contexte, cette fonction provenait à l'origine de scikit-image et a été portée sur NumPy, et nous n'avons pas très bien nettoyé par la suite. Je pense que la douleur associée à la résolution de ce problème sera un rappel frappant de ne plus recommencer à l'avenir.

La v0.14.2 a été publiée et résout le problème.

Salut, j'ai le même problème. Il suffit de mettre à jour tous les packages.

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

Quelqu'un peut-il m'aider à résoudre ce problème ?

Veuillez signaler la sortie des éléments suivants :

import skimage
print(skimage.__version__)

J'ai ceci

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

@stefanv serait-il logique s'il a scikit-image-0.14.2 (dans le commentaire juste avant le vôtre) ?

Désolé, mon cerveau était clairement en vacances.

0.14.2 a résolu ce problème, j'imagine donc qu'une autre version de la bibliothèque est en cours d'importation. Mais je ne sais pas comment le montrer, étant donné que le commentaire précédent dit le contraire.

J'ai déjà résolu ce problème, utilisez simplement conda install -c conda-forge scikit-image , pas pip install -U scikit-image

J'ai déjà résolu ce problème, utilisez simplement conda install -c conda-forge scikit-image , pas pip install -U scikit-image

Cela l'a résolu pour moi

ImportError : impossible d'importer le nom '_validate_lengths' depuis 'numpy.lib.arraypad' (C:\Users\basant\Anaconda3\lib\site-packages\numpy\libarraypad.py)

j'ai ce problème n'importe qui s'il vous plaît donner la solution pour cela

@pandagre Veuillez vous assurer que la dernière version de scikit-image est installée. Si vous rencontrez toujours des problèmes, ouvrez un nouveau numéro et nous essaierons de vous aider.

J'ai déjà résolu ce problème, utilisez simplement conda install -c conda-forge scikit-image , pas pip install -U scikit-image

Cela fonctionne pour moi, merci.

J'ai utilisé conda install -c conda-forge scikit-image mais la version que j'ai obtenue est 0.14.0. J'ai toujours le problème de ne pas pouvoir importer le nom '_validate_lengths'

@yexing99 Veuillez essayer d'installer la dernière version de scikit-image et numpy. Cette combinaison est connue pour fonctionner. Sinon, veuillez ouvrir un nouveau numéro et nous aider à déboguer votre configuration en fournissant tous les numéros de version.

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

Installation des packages collectés : scikit-image
Installation existante trouvée : scikit-image 0.14.1
Désinstallation de scikit-image-0.14.1 :
Sckit-image-0.14.1 désinstallé avec succès
Scikit-image-0.15.0 installé avec succès

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

J'ai déjà résolu ce problème, utilisez simplement conda install -c conda-forge scikit-image , pas pip install -U scikit-image

Comme l'installation de conda est si lente pour moi, j'ai essayé pip install -U scikit-image et ça marche aussi.

pip install -U scikit-image
Cela a fonctionné pour moi.

Ouais pareil,
pip install -U scikit-image
Cela a fonctionné pour moi.

Cette page vous a été utile?
0 / 5 - 0 notes