Numpy: ModuleNotFoundError: Nenhum módulo denominado 'numpy.core._multiarray_umath'

Criado em 22 jan. 2019  ·  9Comentários  ·  Fonte: numpy/numpy

Oi,

Eu tenho um problema semelhante ao # 11871. Recentemente instalei o numpy 1.16.0, mas depois precisei fazer o downgrade e agora continuo recebendo ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' .
O exemplo abaixo estava funcionando bem há cerca de uma semana.

Na verdade, acabei removendo TODOS os pacotes Python ( instruções aqui ) e reinstalando-os _um por um_ usando apt-get (Ubuntu 18.04.1 LTS), exceto ipyparallel e openbabel , que foram instalados usando pip (tenho quase certeza de que ambos não estão relacionados ao problema). O exemplo abaixo foi executado _após_ toda essa limpeza.

Parece que muitas pessoas estão tendo esse problema ultimamente, com pacotes diferentes:

Reproduzindo exemplo de código e mensagem de erro:

Abaixo está uma sessão IPython que mostra o erro:

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

Alguns arquivos e versões 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]: []

Informações sobre a versão 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

Estou usando o 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

Em # 11871 @mattip mencionou que

O módulo de extensão c _multiarray_umath é novo no numpy 1.16.0 e pode indicar uma mistura de versões ou expectativas de versão em algum lugar. Observe que este problema está encerrado. Se você acredita que há um problema com o numpy, abra um novo problema detalhando exatamente o que você está fazendo.

Por que recebo esse erro mesmo tendo o numpy 1.13.3? Obrigado por toda a ajuda!

Comentários muito úteis

Para sua informação, acabei de resolver esse problema forçando a reinstalação do numpy e do pandas da seguinte maneira:

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

Não há mais mensagem de erro.

Todos 9 comentários

Parece que você está removendo uma matriz que foi salva no numpy 1.16 no numpy 1.13.3

Este parece um bug real. Acho que podemos precisar substituir ndarray.__module__ para ser compatível com versões anteriores.

Eu acredito que @tzickel está correto. Acabei de regenerar data.h5 do zero (que faz uso de um script, desta vez usando definitivamente o numpy 1.13.3) e o código acima funcionou.

% 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

Estou encerrando isso porque acredito que está resolvido. Obrigado @tzickel!

Não acredito que esse erro tenha sido resolvido. Não estou usando nenhum arquivo pickle e estou recebendo exatamente o mesmo erro.

Eu tenho esse erro recentemente desde algumas mudanças no meu MAC. Segui todas as práticas recomendadas e não consigo resolver esse erro.

Atualizado para MAC High Sierra (10.13.6)

instalou o python 3.6 e o ​​python 3.7 para executar lado a lado usando o home-brew e seguiu as diretrizes apresentadas aqui:
https://stackoverflow.com/questions/51726203/installing-python3-6-alongside-python3-7-on-mac

configurar um novo env virtual para usar o python 3.6.5 e vários outros módulos.

Este erro ocorre no ambiente virtual. Os notebooks e o código python da linha de comando geram o erro. O código python é executado 100% corretamente, sem outros erros além desta mensagem.

python my_py_file.py
ModuleNotFoundError: Nenhum módulo denominado 'numpy.core._multiarray_umath'
ModuleNotFoundError: Nenhum módulo denominado 'numpy.core._multiarray_umath'
ModuleNotFoundError: Nenhum módulo denominado 'numpy.core._multiarray_umath'
ModuleNotFoundError: Nenhum módulo denominado 'numpy.core._multiarray_umath'

Excluí e recriei o venv, mas o erro persiste. Provavelmente todo o código continua a ser executado sem nenhum outro erro.

Não tenho certeza do que fazer a seguir. Se houver uma solução, por favor me avise caso contrário IMHO este problema não deve ser fechado.

Um problema semelhante está sendo rastreado aqui:
https://github.com/alpacahq/pylivetrader/issues/73

Para sua informação, acabei de resolver esse problema forçando a reinstalação do numpy e do pandas da seguinte maneira:

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

Não há mais mensagem de erro.

Resolvido este problema!

  1. Eu estava tendo o mesmo problema em numpy.load ('myfile.py'):

Traceback (última chamada mais recente):
Arquivo "", linha 1, em
Arquivo "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py", linha 421, no carregamento
pickle_kwargs = pickle_kwargs)
Arquivo "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py", linha 650, em read_array
array = pickle.load (fp, ** pickle_kwargs)
ModuleNotFoundError: Nenhum módulo denominado 'numpy.core._multiarray_umath'

  1. Dentro de um env virtual Anaconda, a configuração a seguir resolveu esse problema no meu caso.

numpy 1.16.0
pandas 0.22.0
pip 18.1 py36_0
python 3.6.8 h0371630_0

  1. Versão OS X: macOS High Sierra v10.13.6

Espero que isto ajude!

Resolvido este problema!

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

Traceback (última chamada mais recente):
Arquivo "", linha 1, em
Arquivo "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py", linha 421, no carregamento
pickle_kwargs = pickle_kwargs)
Arquivo "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py", linha 650, em read_array
array = pickle.load (fp, ** pickle_kwargs)
ModuleNotFoundError: Nenhum módulo denominado '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 isto ajude!

Tenho tido esse problema e isso resolveu o problema para mim também. Obrigado!

Atualize o numpy com pip e funcionará:

pip install --upgrade numpy

@mlsmall obrigado. isto é mágica.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

dmvianna picture dmvianna  ·  4Comentários

kevinzhai80 picture kevinzhai80  ·  4Comentários

toddrjen picture toddrjen  ·  4Comentários

MareinK picture MareinK  ·  3Comentários

manuels picture manuels  ·  3Comentários