Numpy: ModuleNotFoundError: لا توجد وحدة باسم "numpy.core._multiarray_umath"

تم إنشاؤها على ٢٢ يناير ٢٠١٩  ·  9تعليقات  ·  مصدر: numpy/numpy

مرحبا،

لدي مشكلة مشابهة لمشكلة # 11871. لقد قمت مؤخرًا بتثبيت numpy 1.16.0 ولكن بعد ذلك كنت بحاجة إلى الرجوع إلى إصدار أقدم والآن أستمر في الحصول على ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' .
كان المثال أدناه يعمل بشكل جيد منذ أسبوع أو نحو ذلك.

لقد انتهيت بالفعل من إزالة جميع حزم Python ( الإرشادات هنا ) وإعادة تثبيتها _ واحدة تلو الأخرى_ باستخدام apt-get (Ubuntu 18.04.1 LTS) ، باستثناء ipyparallel و openbabel ، والتي تم تثبيتها باستخدام pip (أنا متأكد من أن كلاهما لا علاقة له بالمشكلة). تم تشغيل المثال أدناه _after_ كل هذا التنظيف.

يبدو أن الكثير من الأشخاص يواجهون هذه المشكلة مؤخرًا ، بحزم مختلفة:

إعادة إنتاج مثال التعليمات البرمجية ورسالة الخطأ:

يوجد أدناه جلسة IPython توضح الخطأ:

% ipython3
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
Type "copyright", "credits" or "license" for more information.

IPython 5.5.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import pandas as pd

In [2]: pd.read_hdf("data.h5")
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-2-122d644764c1> in <module>()
----> 1 pd.read_hdf("data.h5")

/usr/lib/python3/dist-packages/pandas/io/pytables.py in read_hdf(path_or_buf, key, mode, **kwargs)
    368                                      'contains multiple datasets.')
    369             key = candidate_only_group._v_pathname
--> 370         return store.select(key, auto_close=auto_close, **kwargs)
    371     except:
    372         # if there is an error, close the store

/usr/lib/python3/dist-packages/pandas/io/pytables.py in select(self, key, where, start, stop, columns, iterator, chunksize, auto_close, **kwargs)
    715                            chunksize=chunksize, auto_close=auto_close)
    716 
--> 717         return it.get_result()
    718 
    719     def select_as_coordinates(

/usr/lib/python3/dist-packages/pandas/io/pytables.py in get_result(self, coordinates)
   1455 
   1456         # directly return the result
-> 1457         results = self.func(self.start, self.stop, where)
   1458         self.close()
   1459         return results

/usr/lib/python3/dist-packages/pandas/io/pytables.py in func(_start, _stop, _where)
    708             return s.read(start=_start, stop=_stop,
    709                           where=_where,
--> 710                           columns=columns, **kwargs)
    711 
    712         # create the iterator

/usr/lib/python3/dist-packages/pandas/io/pytables.py in read(self, start, stop, **kwargs)
   2902             blk_items = self.read_index('block%d_items' % i)
   2903             values = self.read_array('block%d_values' % i,
-> 2904                                      start=_start, stop=_stop)
   2905             blk = make_block(values,
   2906                              placement=items.get_indexer(blk_items))

/usr/lib/python3/dist-packages/pandas/io/pytables.py in read_array(self, key, start, stop)
   2457 
   2458         if isinstance(node, tables.VLArray):
-> 2459             ret = node[0][start:stop]
   2460         else:
   2461             dtype = getattr(attrs, 'value_type', None)

/usr/lib/python3/dist-packages/tables/vlarray.py in __getitem__(self, key)
    669                 key += self.nrows
    670             (start, stop, step) = self._process_range(key, key + 1, 1)
--> 671             return self.read(start, stop, step)[0]
    672         elif isinstance(key, slice):
    673             start, stop, step = self._process_range(

/usr/lib/python3/dist-packages/tables/vlarray.py in read(self, start, stop, step)
    813         atom = self.atom
    814         if not hasattr(atom, 'size'):  # it is a pseudo-atom
--> 815             outlistarr = [atom.fromarray(arr) for arr in listarr]
    816         else:
    817             # Convert the list to the right flavor

/usr/lib/python3/dist-packages/tables/vlarray.py in <listcomp>(.0)
    813         atom = self.atom
    814         if not hasattr(atom, 'size'):  # it is a pseudo-atom
--> 815             outlistarr = [atom.fromarray(arr) for arr in listarr]
    816         else:
    817             # Convert the list to the right flavor

/usr/lib/python3/dist-packages/tables/atom.py in fromarray(self, array)
   1226         if array.size == 0:
   1227             return None
-> 1228         return six.moves.cPickle.loads(array.tostring())

ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'

بعض الملفات والإصدارات ذات الصلة:

In [4]: import pandas as pd

In [5]: pd.__file__
Out[5]: '/usr/lib/python3/dist-packages/pandas/__init__.py'

In [6]: pd.__version__
Out[6]: '0.22.0'

In [7]: pd.__path__
Out[7]: ['/usr/lib/python3/dist-packages/pandas']

In [8]: import tables

In [9]: tables.__file__
Out[9]: '/usr/lib/python3/dist-packages/tables/__init__.py'

In [10]: tables.__version__
Out[10]: '3.4.2'

In [11]: tables.__path__
Out[11]: ['/usr/lib/python3/dist-packages/tables']

In [12]: import six

In [13]: six.__file__
Out[13]: '/usr/lib/python3/dist-packages/six.py'

In [14]: six.__version__
Out[14]: '1.11.0'

In [15]: six.__path__
Out[15]: []

معلومات إصدار Numpy / Python:

In [1]: import sys, numpy; print(numpy.__version__, sys.version)
1.13.3 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0]

In [2]: import pandas; pandas.show_versions()

INSTALLED VERSIONS
------------------
commit: None
python: 3.6.7.final.0
python-bits: 64
OS: Linux
OS-release: 4.15.0-43-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_GB.UTF-8
LOCALE: pt_BR.UTF-8

pandas: 0.22.0
pytest: None
pip: 9.0.1
setuptools: 40.6.3
Cython: None
numpy: 1.13.3
scipy: 0.19.1
pyarrow: None
xarray: None
IPython: 5.5.0
sphinx: None
patsy: 0.4.1+dev
dateutil: 2.6.1
pytz: 2018.3
blosc: None
bottleneck: None
tables: 3.4.2
numexpr: 2.6.4
feather: None
matplotlib: 2.1.1
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: 4.6.0
html5lib: 0.999999999
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None

أنا أستخدم Ubuntu 18.04.1 LTS:

% uname -a
Linux mothership 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

في # 11871mattip ذكر ذلك

وحدة الامتداد c _multiarray_umath جديدة على 1.16.0 ، وقد تشير إلى مزيج من الإصدارات ، أو توقعات الإصدار ، في مكان ما. لاحظ أن هذه المشكلة مغلقة ، إذا كنت تعتقد أن هناك مشكلة في numpy ، فيرجى فتح مشكلة جديدة توضح بالتفصيل ما تفعله بالضبط.

كيف أحصل على هذا الخطأ على الرغم من أن لدي رقم 1.13.3؟ شكرا لجميع التعليمات!

التعليق الأكثر فائدة

لمعلوماتك ، لقد قمت للتو بحل هذه المشكلة عن طريق فرض إعادة تثبيت numpy و pandas على النحو التالي:

تثبيت نقطة - ترقية - فرض إعادة تثبيت numpy == 1.14.5
تثبيت نقطة - ترقية - فرض إعادة تثبيت الباندا == 0.22.0

لا مزيد من رسائل الخطأ.

ال 9 كومينتر

يبدو أنك تقوم بإلغاء انتقاء مصفوفة تم حفظها في numpy 1.16 في numpy 1.13.3

هذا يبدو وكأنه حشرة حقيقية. أعتقد أننا قد نحتاج إلى تجاوز ndarray.__module__ لنكون متوافقين مع الإصدارات السابقة.

أعتقد أن tzickel هو الصحيح. لقد قمت للتو بإعادة إنشاء data.h5 من الصفر (والذي يستخدم نصًا ، هذه المرة بالتأكيد باستخدام numpy 1.13.3) وعمل الكود أعلاه.

% ipython3
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
Type "copyright", "credits" or "license" for more information.

IPython 5.5.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import pandas as pd

In [2]: df = pd.read_hdf("data.h5")

In [3]: df.columns
Out[3]: 
Index(['aonames', 'atombasis', 'atomcharges', 'atomcoords', 'atommasses',
       'atomnos', 'charge', 'coreelectrons', 'enthalpy', 'entropy',
       'freeenergy', 'gbasis', 'geotargets', 'geovalues', 'grads', 'homos',
       'jobfilename', 'metadata', 'mocoeffs', 'moenergies', 'moments',
       'mosyms', 'mult', 'natom', 'nbasis', 'nmo', 'optdone', 'optstatus',
       'polarizabilities', 'pressure', 'scfenergies', 'scftargets',
       'scfvalues', 'temperature', 'vibdisps', 'vibfreqs', 'vibirs',
       'vibsyms'],
      dtype='object')

In [4]: df["freeenergy"].head()
Out[4]: 
0   -228.614123
1   -229.062884
2   -552.464074
3   -552.010916
4   -552.006776
Name: freeenergy, dtype: float64

أنا أغلق هذا لأنني أعتقد أنه تم حلها. شكرا tzickel!

لا أعتقد أنه تم حل هذا الخطأ. أنا لا أستخدم أي ملفات مخلل وأحصل على نفس الخطأ بالضبط.

لدي هذا الخطأ مؤخرًا منذ إجراء بعض التغييرات على MAC الخاص بي. لقد اتبعت جميع أفضل الممارسات ولا يمكنني حل هذا الخطأ على ما يبدو.

تمت الترقية إلى MAC High Sierra (10.13.6)

قم بتثبيت كل من python 3.6 و python 3.7 للتشغيل جنبًا إلى جنب باستخدام المشروب المنزلي واتبع الإرشادات المقدمة هنا:
https://stackoverflow.com/questions/51726203/installing-python3-6-alongside-python3-7-on-mac

قم بإعداد بيئة افتراضية جديدة لاستخدام python 3.6.5 ومجموعة من الوحدات النمطية الأخرى.

يحدث هذا الخطأ في البيئة الافتراضية. كل من دفاتر الملاحظات ورمز بيثون سطر الأوامر يولدان الخطأ. يعمل كود Python بشكل صحيح بنسبة 100٪ مع عدم وجود أخطاء أخرى غير هذه الرسالة.

python my_py_file.py
ModuleNotFoundError: لا توجد وحدة باسم "numpy.core._multiarray_umath"
ModuleNotFoundError: لا توجد وحدة باسم "numpy.core._multiarray_umath"
ModuleNotFoundError: لا توجد وحدة باسم "numpy.core._multiarray_umath"
ModuleNotFoundError: لا توجد وحدة باسم "numpy.core._multiarray_umath"

لقد حذفت وأعدت إنشاء venv لكن الخطأ استمر. من المحتمل أن يستمر تشغيل جميع التعليمات البرمجية دون أي أخطاء أخرى.

لست متأكدًا مما يجب فعله بعد ذلك. إذا كان هناك حل ، فالرجاء إخباري بخلاف ذلك IMHO لا ينبغي إغلاق هذه المشكلات.

يتم تتبع مشكلة مماثلة هنا:
https://github.com/alpacahq/pylivetrader/issues/73

لمعلوماتك ، لقد قمت للتو بحل هذه المشكلة عن طريق فرض إعادة تثبيت numpy و pandas على النحو التالي:

تثبيت نقطة - ترقية - فرض إعادة تثبيت numpy == 1.14.5
تثبيت نقطة - ترقية - فرض إعادة تثبيت الباندا == 0.22.0

لا مزيد من رسائل الخطأ.

تحل هذه المشكلة!

  1. كنت أحصل على نفس المشكلة في numpy.load ('myfile.py'):

Traceback (آخر مكالمة أخيرة):
ملف ""، السطر 1 ، في
ملف "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py" ، السطر 421 ، قيد التحميل
pickle_kwargs = pickle_kwargs)
ملف "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py" ، السطر 650 ، في read_array
المصفوفة = pickle.load (fp، ** pickle_kwargs)
ModuleNotFoundError: لا توجد وحدة باسم "numpy.core._multiarray_umath"

  1. داخل بيئة Anaconda الافتراضية ، حل التكوين التالي هذه المشكلة في حالتي.

numpy 1.16.0
الباندا 0.22.0
نقطة 18.1 pi36_0
بيثون 3.6.8 h0371630_0

  1. إصدار OS X: macOS High Sierra v10.13.6

أتمنى أن يساعدك هذا!

تحل هذه المشكلة!

1. I was getting the same issue in numpy.load('myfile.py'):

Traceback (آخر مكالمة أخيرة):
ملف "" ، السطر 1 ، بتنسيق
ملف "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py" ، السطر 421 ، قيد التحميل
pickle_kwargs = pickle_kwargs)
ملف "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py" ، السطر 650 ، في read_array
المصفوفة = pickle.load (fp، ** pickle_kwargs)
ModuleNotFoundError: لا توجد وحدة باسم "numpy.core._multiarray_umath"

1. Inside an Anaconda virtual env, the following config solved this issue in my case.

numpy 1.16.0
الباندا 0.22.0
نقطة 18.1 pi36_0
بيثون 3.6.8 h0371630_0

1. OS X version: macOS High Sierra v10.13.6

أتمنى أن يساعدك هذا!

واجهت هذه المشكلة وهذا أدى إلى حل المشكلة بالنسبة لي أيضًا. شكرا!

قم بتحديث numpy بالنقطة وسيعمل:

تثبيت نقطة - ترقية numpy

mlsmall شكرا. إنه سحر.

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