Numpy: ModuleNotFoundError: ningún módulo llamado 'numpy.core._multiarray_umath'

Creado en 22 ene. 2019  ·  9Comentarios  ·  Fuente: numpy/numpy

Hola,

Tengo un problema similar al # 11871. Recientemente instalé numpy 1.16.0 pero luego tuve que degradar y ahora sigo obteniendo ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' .
El siguiente ejemplo estaba funcionando bien hace aproximadamente una semana.

De hecho, terminé eliminando TODOS los paquetes de Python ( instrucciones aquí ) y reinstalándolos _uno por uno_ usando apt-get (Ubuntu 18.04.1 LTS), excepto ipyparallel y openbabel , que se instalaron usando pip (estoy bastante seguro de que ninguno de los dos está relacionado con el problema). El siguiente ejemplo se ejecutó _después_ de toda esta limpieza.

Parece que mucha gente está teniendo este problema últimamente, con diferentes paquetes:

Reproduciendo ejemplo de código y mensaje de error:

A continuación se muestra una sesión de IPython que muestra el error:

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

Algunos archivos y versiones relevantes:

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]: []

Información de la versión de 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

Estoy usando 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

En # 11871 @mattip mencionó que

El módulo de extensión c _multiarray_umath es nuevo en numpy 1.16.0 y puede indicar una combinación de versiones, o expectativas de versión, en algún lugar. Tenga en cuenta que este problema está cerrado, si cree que hay un problema con numpy, abra un nuevo problema que detalle exactamente lo que está haciendo.

¿Cómo es que obtengo este error a pesar de que tengo numpy 1.13.3? ¡Gracias por toda la ayuda!

Comentario más útil

Para su información, acabo de resolver este problema forzando una reinstalación de numpy y pandas de la siguiente manera:

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

No más mensaje de error.

Todos 9 comentarios

Parece que está eliminando una matriz que se guardó en numpy 1.16 en numpy 1.13.3

Este parece un error real. Creo que es posible que debamos anular ndarray.__module__ para ser compatibles con versiones anteriores.

Creo que @tzickel tiene razón. Acabo de regenerar data.h5 desde cero (que hace uso de un script, esta vez definitivamente usando numpy 1.13.3) y el código anterior funcionó.

% 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

Estoy cerrando esto porque creo que está resuelto. ¡Gracias @tzickel!

No creo que este error esté resuelto. No estoy usando ningún archivo pickle y recibo exactamente el mismo error.

Tengo este error recientemente desde algunos cambios en mi MAC. Seguí todas las mejores prácticas y parece que no puedo resolver este error.

Actualizado a MAC High Sierra (10.13.6)

instaló python 3.6 y python 3.7 para que se ejecutaran uno al lado del otro usando home-brew y siguió las pautas que se presentan aquí:
https://stackoverflow.com/questions/51726203/installing-python3-6-alongside-python3-7-on-mac

configure un nuevo entorno virtual para usar python 3.6.5 y un montón de otros módulos.

Este error ocurre en el entorno virtual. Tanto los cuadernos como el código Python de la línea de comandos generan el error. El código de Python se ejecuta 100% correctamente sin más errores que este mensaje.

python my_py_file.py
ModuleNotFoundError: ningún módulo llamado 'numpy.core._multiarray_umath'
ModuleNotFoundError: ningún módulo llamado 'numpy.core._multiarray_umath'
ModuleNotFoundError: ningún módulo llamado 'numpy.core._multiarray_umath'
ModuleNotFoundError: ningún módulo llamado 'numpy.core._multiarray_umath'

Eliminé y recreé el venv pero el error persiste. Es probable que todo el código continúe ejecutándose sin ningún otro error.

No estoy seguro de qué hacer a continuación. Si hay una solución, hágamelo saber, de lo contrario, en mi humilde opinión, este problema no debería resolverse.

Aquí se está rastreando un problema similar:
https://github.com/alpacahq/pylivetrader/issues/73

Para su información, acabo de resolver este problema forzando una reinstalación de numpy y pandas de la siguiente manera:

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

No más mensaje de error.

¡Resuelto este problema!

  1. Estaba obteniendo el mismo problema en numpy.load ('myfile.py'):

Rastreo (llamadas recientes más última):
Archivo "", línea 1, en
Archivo "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py", línea 421, en carga
pickle_kwargs = pickle_kwargs)
Archivo "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py", línea 650, en read_array
array = pickle.load (fp, ** pickle_kwargs)
ModuleNotFoundError: ningún módulo llamado 'numpy.core._multiarray_umath'

  1. Dentro de un entorno virtual de Anaconda, la siguiente configuración resolvió este problema en mi caso.

numpy 1.16.0
pandas 0.22.0
pip 18.1 py36_0
python 3.6.8 h0371630_0

  1. Versión de OS X: macOS High Sierra v10.13.6

¡Espero que esto ayude!

¡Resuelto este problema!

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

Rastreo (llamadas recientes más última):
Archivo "", línea 1, en
Archivo "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py", línea 421, en carga
pickle_kwargs = pickle_kwargs)
Archivo "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py", línea 650, en read_array
array = pickle.load (fp, ** pickle_kwargs)
ModuleNotFoundError: ningún módulo llamado '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

¡Espero que esto ayude!

He tenido este problema y esto también me resolvió el problema. ¡Gracias!

Actualice numpy con pip y funcionará:

pip install --upgrade numpy

@mlsmall gracias. es mágico.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

kevinzhai80 picture kevinzhai80  ·  4Comentarios

dmvianna picture dmvianna  ·  4Comentarios

MorBilly picture MorBilly  ·  4Comentarios

astrofrog picture astrofrog  ·  4Comentarios

manuels picture manuels  ·  3Comentarios