Numpy: لا يمكن استيراد الاسم "_validate_lengths"

تم إنشاؤها على ١٥ يناير ٢٠١٩  ·  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 كومينتر

نعم ، يبدو أن هذا اختفى في رقم 1.16.0. ولكن ، كما لاحظت على الأرجح ، تحتوي الوظيفة على شرطة سفلية مضافة مسبقًا ، مما يعني أن صورة scikit كانت غير مطيع بعض الشيء لاستيراد هذه الوظيفة.

توجد مشكلة scikit-image هنا: https://github.com/scikit-image/scikit-image/issues/3649

إغلاق لصالح هذه القضية.

شكرا لك @ ماثيو بريت على إجابتك السريعة.

نعم ، يبدو أن هذا اختفى في رقم 1.16.0. ولكن ، كما لاحظت على الأرجح ، تحتوي الوظيفة على شرطة سفلية مضافة مسبقًا ، مما يعني أن صورة scikit كانت غير مطيع بعض الشيء لاستيراد هذه الوظيفة.

صيح. لإعطاء بعض السياق ، جاءت هذه الوظيفة من 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

هذا حلها بالنسبة لي

خطأ في الاستيراد: لا يمكن استيراد الاسم '_validate_lengths' من 'numpy.lib.arraypad' (C: \ Users \ basant \ Anaconda3 \ lib \ site -pack \ 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 -U scikit-image
هذا عمل لي.

يا نفس ،
تثبيت Pip -U scikit-image
هذا عمل لي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات