Numpy: ModuleNotFoundError: Kein Modul namens 'numpy.core._multiarray_umath'

Erstellt am 22. Jan. 2019  ·  9Kommentare  ·  Quelle: numpy/numpy

Hallo,

Ich habe ein ähnliches Problem wie #11871. Ich habe vor kurzem numpy 1.16.0 installiert, aber dann musste ich ein Downgrade durchführen und bekomme jetzt immer wieder ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' .
Das folgende Beispiel hat vor einer Woche oder so gut funktioniert.

Ich habe tatsächlich ALLE Python-Pakete entfernt ( Anweisungen hier ) und sie _einzeln_ mit apt-get (Ubuntu 18.04.1 LTS) neu installiert, mit Ausnahme von ipyparallel und openbabel , was wurden mit pip installiert (ich bin mir ziemlich sicher, dass beide nichts mit dem Problem zu tun haben). Das folgende Beispiel wurde _nach_ all diesen Aufräumarbeiten ausgeführt.

Es scheint, dass in letzter Zeit viele Leute dieses Problem mit verschiedenen Paketen haben:

Reproduzieren eines Codebeispiels und einer Fehlermeldung:

Unten ist eine IPython-Sitzung, die den Fehler anzeigt:

% 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'

Einige relevante Dateien und Versionen:

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

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

Ich verwende 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

In #11871 hat @mattip das erwähnt

Das c-Erweiterungsmodul _multiarray_umath ist neu in numpy 1.16.0 und kann irgendwo auf eine Mischung von Versionen oder Versionserwartungen hinweisen. Beachten Sie, dass dieses Problem geschlossen ist. Wenn Sie glauben, dass ein Problem mit numpy vorliegt, öffnen Sie bitte ein neues Problem, in dem genau beschrieben wird, was Sie tun.

Wie kommt es, dass ich diesen Fehler erhalte, obwohl ich numpy 1.13.3 habe? Danke für die ganze Hilfe!

Hilfreichster Kommentar

Zu Ihrer Information, ich habe dieses Problem gerade gelöst, indem ich eine Neuinstallation von Numpy und Pandas wie folgt erzwungen habe:

pip install --upgrade --force-reinstall numpy==1.14.5
pip install --upgrade --force-reinstall pandas==0.22.0

Keine Fehlermeldung mehr.

Alle 9 Kommentare

Es scheint, als würden Sie ein Array entpicken, das in numpy 1.16 in numpy 1.13.3 gespeichert wurde

Dieser sieht aus wie ein echter Bug. Ich denke, wir müssen möglicherweise ndarray.__module__ überschreiben, um abwärtskompatibel zu sein.

Ich glaube, @tzickel ist richtig. Ich habe gerade data.h5 von Grund auf neu generiert (das ein Skript verwendet, diesmal definitiv mit numpy 1.13.3) und der obige Code funktionierte.

% 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

Ich schließe das, da ich glaube, dass es gelöst ist. Danke @tzickel!

Ich glaube nicht, dass dieser Fehler behoben ist. Ich verwende keine Pickle-Dateien und erhalte genau denselben Fehler.

Ich habe diesen Fehler vor kurzem seit ein paar Änderungen an meinem MAC. Ich habe alle Best Practices befolgt und kann diesen Fehler anscheinend nicht beheben.

Auf MAC High Sierra (10.13.6) aktualisiert

installierte sowohl Python 3.6 als auch Python 3.7, um mit Home-brew nebeneinander zu laufen, und befolgte die hier vorgestellten Richtlinien:
https://stackoverflow.com/questions/51726203/installing-python3-6-alongside-python3-7-on-mac

Richten Sie eine neue virtuelle Umgebung ein, um Python 3.6.5 und eine Reihe anderer Module zu verwenden.

Dieser Fehler tritt in der virtuellen Umgebung auf. Sowohl Notebooks als auch der Python-Befehlszeilencode generieren den Fehler. Der Python-Code wird zu 100% korrekt ausgeführt und es gibt keine anderen Fehler als diese Nachricht.

Python my_py_file.py
ModuleNotFoundError: Kein Modul namens 'numpy.core._multiarray_umath'
ModuleNotFoundError: Kein Modul namens 'numpy.core._multiarray_umath'
ModuleNotFoundError: Kein Modul namens 'numpy.core._multiarray_umath'
ModuleNotFoundError: Kein Modul namens 'numpy.core._multiarray_umath'

Ich habe das Venv gelöscht und neu erstellt, aber der Fehler besteht weiterhin. Wahrscheinlich wird der gesamte Code weiterhin ohne andere Fehler ausgeführt.

Ich bin mir nicht sicher, was ich als nächstes tun soll. Wenn es eine Lösung gibt, lassen Sie es mich bitte wissen, ansonsten sollten diese Probleme IMHO nicht geschlossen werden.

Ein ähnliches Problem wird hier verfolgt:
https://github.com/alpacahq/pylivetrader/issues/73

Zu Ihrer Information, ich habe dieses Problem gerade gelöst, indem ich eine Neuinstallation von Numpy und Pandas wie folgt erzwungen habe:

pip install --upgrade --force-reinstall numpy==1.14.5
pip install --upgrade --force-reinstall pandas==0.22.0

Keine Fehlermeldung mehr.

Dieses Problem gelöst!

  1. Ich hatte das gleiche Problem in numpy.load('myfile.py'):

Traceback (letzter Anruf zuletzt):
Datei "", Zeile 1, in
Datei "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py", Zeile 421, in Load
pickle_kwargs=pickle_kwargs)
Datei "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py", Zeile 650, in read_array
Array = pickle.load(fp, **pickle_kwargs)
ModuleNotFoundError: Kein Modul namens 'numpy.core._multiarray_umath'

  1. In einer virtuellen Anaconda-Umgebung hat die folgende Konfiguration dieses Problem in meinem Fall gelöst.

numpy 1.16.0
Pandas 0.22.0
pip 18.1 py36_0
Python 3.6.8 h0371630_0

  1. OS X-Version: macOS High Sierra v10.13.6

Hoffe das hilft!

Dieses Problem gelöst!

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

Traceback (letzter Anruf zuletzt):
Datei "", Zeile 1, in
Datei "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py", Zeile 421, in Load
pickle_kwargs=pickle_kwargs)
Datei "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py", Zeile 650, in read_array
Array = pickle.load(fp, **pickle_kwargs)
ModuleNotFoundError: Kein Modul namens 'numpy.core._multiarray_umath'

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

numpy 1.16.0
Pandas 0.22.0
pip 18.1 py36_0
Python 3.6.8 h0371630_0

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

Hoffe das hilft!

Habe dieses Problem und das hat das Problem auch bei mir gelöst. Danke!

Aktualisieren Sie numpy mit pip und es wird funktionieren:

pip install --upgrade numpy

@mlsmall danke. es ist Magie.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen