Numpy: Name '_validate_lengths' kann nicht importiert werden

Erstellt am 15. Jan. 2019  ·  21Kommentare  ·  Quelle: numpy/numpy

es tritt nur mit numpy 1.16 auf, numpy 1.15 funktioniert einwandfrei

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-Versionsinformationen:

>>> 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)]

Hilfreichster Kommentar

Ich habe dieses Problem bereits gelöst, benutze einfach conda install -c conda-forge scikit-image , nicht pip install -U scikit-image

Alle 21 Kommentare

Ja, es sieht so aus, als wäre dies in numpy 1.16.0 verschwunden. Aber wie Sie wahrscheinlich bemerkt haben, hat die Funktion einen vorangestellten Unterstrich, was bedeutet, dass scikit-image ein bisschen ungezogen war, diese Funktion zu importieren.

Hier gibt es ein Scikit-Image-Problem: https://github.com/scikit-image/scikit-image/issues/3649

Schluss zu Gunsten dieses Themas.

Danke @matthew-brett für deine schnelle Antwort.

Ja, es sieht so aus, als wäre dies in numpy 1.16.0 verschwunden. Aber wie Sie wahrscheinlich bemerkt haben, hat die Funktion einen vorangestellten Unterstrich, was bedeutet, dass scikit-image ein bisschen ungezogen war, diese Funktion zu importieren.

Richtig. Um etwas Kontext zu geben, diese Funktion stammt ursprünglich von scikit-image und wurde auf NumPy portiert, und wir haben danach nicht sehr gut aufgeräumt. Ich denke, der Schmerz, der mit der Behebung dieses Problems verbunden ist, wird eine lebhafte Erinnerung daran sein, dies in Zukunft nicht mehr zu tun.

v0.14.2 wurde veröffentlicht und behebt das Problem.

Hallo, habe das gleiche Problem. Aktualisieren Sie einfach alle Pakete.

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

Kann mir jemand helfen, dieses Problem zu lösen?

Bitte melden Sie die Ausgabe des Folgenden:

import skimage
print(skimage.__version__)

ich habe das

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

@stefanv wäre es sinnvoll, wenn er scikit-image-0.14.2 (im Kommentar kurz vor deinem) hat?

Sorry, mein Gehirn war eindeutig im Urlaub.

0.14.2 hat dieses Problem behoben, daher kann ich mir vorstellen, dass eine andere Version der Bibliothek importiert wird. Aber ich weiß nicht, wie ich das zeigen soll, da der vorherige Kommentar das Gegenteil besagt.

Ich habe dieses Problem bereits gelöst, benutze einfach conda install -c conda-forge scikit-image , nicht pip install -U scikit-image

Ich habe dieses Problem bereits gelöst, benutze einfach conda install -c conda-forge scikit-image , nicht pip install -U scikit-image

Das hat es für mich gelöst

ImportError: Name '_validate_lengths' kann nicht von 'numpy.lib.arraypad' importiert werden (C:\Users\basant\Anaconda3\lib\site-packages\numpy\libarraypad.py)

Ich habe dieses Problem, bitte gib mir die Lösung dafür

@pandagre Bitte stellen Sie sicher, dass Sie die neueste Version von scikit-image installiert haben. Wenn weiterhin Probleme auftreten, öffnen Sie ein neues Problem und wir werden versuchen, Ihnen zu helfen.

Ich habe dieses Problem bereits gelöst, benutze einfach conda install -c conda-forge scikit-image , nicht pip install -U scikit-image

Das funktioniert bei mir, danke.

Ich habe conda install -c conda-forge scikit-image verwendet, aber die Version, die ich erhalten habe, ist 0.14.0. Ich habe immer noch das Problem, dass der Name '_validate_lengths' nicht importiert werden kann.

@yexing99 Bitte versuchen Sie die neueste Version von scikit-image und numpy zu installieren. Diese Kombination funktioniert bekanntlich. Andernfalls öffnen Sie bitte ein neues Problem und helfen Sie uns, Ihr Setup dort zu debuggen, indem Sie alle Versionsnummern angeben.

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

Gesammelte Pakete installieren: scikit-image
Vorhandene Installation gefunden: scikit-image 0.14.1
scikit-image-0.14.1 deinstallieren:
Erfolgreich deinstalliert scikit-image-0.14.1
Erfolgreich installiert scikit-image-0.15.0

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

Ich habe dieses Problem bereits gelöst, benutze einfach conda install -c conda-forge scikit-image , nicht pip install -U scikit-image

Da die Installation von Conda für mich so langsam ist, habe ich pip install -U scikit-image ausprobiert und es funktioniert auch.

pip install -U scikit-image
Das hat bei mir funktioniert.

Ja dasselbe,
pip install -U scikit-image
Das hat bei mir funktioniert.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen