Numpy: ModuleNotFoundError : aucun module nommé 'numpy.core._multiarray_umath'

Créé le 22 janv. 2019  ·  9Commentaires  ·  Source: numpy/numpy

Salut,

J'ai un problème similaire à #11871. J'ai récemment installé numpy 1.16.0 mais j'ai dû rétrograder et maintenant je continue à recevoir ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' .
L'exemple ci-dessous fonctionnait bien il y a environ une semaine.

En fait, j'ai fini par supprimer TOUS les packages Python ( instructions ici ) et les réinstaller _un par un_ en utilisant apt-get (Ubuntu 18.04.1 LTS), à l'exception de ipyparallel et openbabel , qui ont été installés à l'aide de pip (je suis sûr que les deux ne sont pas liés au problème). L'exemple ci-dessous a été exécuté _après_ tout ce nettoyage.

Il semble que beaucoup de gens rencontrent ce problème ces derniers temps, avec différents packages :

Exemple de code de reproduction et message d'erreur :

Vous trouverez ci-dessous une session IPython qui affiche l'erreur :

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

Quelques fichiers et versions pertinents :

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

Informations sur la version 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

J'utilise 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 a mentionné que

Le module d'extension c _multiarray_umath est nouveau pour numpy 1.16.0, et peut indiquer un mélange de versions, ou des attentes de version, quelque part. Notez que ce problème est fermé, si vous pensez qu'il y a un problème avec numpy, veuillez ouvrir un nouveau problème détaillant exactement ce que vous faites.

Comment se fait-il que j'obtienne cette erreur même si j'ai numpy 1.13.3 ? Merci pour votre aide!

Commentaire le plus utile

Pour info, je viens de résoudre ce problème en forçant une réinstallation de numpy et pandas comme suit :

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

Plus de message d'erreur.

Tous les 9 commentaires

Il semble que vous décolliez un tableau qui a été enregistré dans numpy 1.16 dans numpy 1.13.3

Celui-ci ressemble à un vrai bug. Je pense que nous pourrions avoir besoin de remplacer ndarray.__module__ pour être rétrocompatible.

Je crois que @tzickel a raison. Je viens de régénérer data.h5 partir de zéro (qui utilise un script, cette fois certainement en utilisant numpy 1.13.3) et le code ci-dessus a fonctionné.

% 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

Je ferme ceci car je pense que c'est résolu. Merci @tzickel !

Je ne crois pas que cette erreur soit résolue. Je n'utilise aucun fichier cornichon et j'obtiens exactement la même erreur.

J'ai cette erreur récemment depuis quelques changements sur mon MAC. J'ai suivi toutes les meilleures pratiques et je n'arrive pas à résoudre cette erreur.

Mise à niveau vers MAC High Sierra (10.13.6)

installé à la fois python 3.6 et python 3.7 pour fonctionner côte à côte en utilisant home-brew et a suivi les directives présentées ici :
https://stackoverflow.com/questions/51726203/installing-python3-6-alongside-python3-7-on-mac

configurez un nouvel env virtuel pour utiliser python 3.6.5 et un tas d'autres modules.

Cette erreur se produit dans l'environnement virtuel. Les blocs-notes et le code python de la ligne de commande génèrent l'erreur. Le code python s'exécute correctement à 100% sans autre erreur que ce message.

python mon_py_file.py
ModuleNotFoundError : aucun module nommé 'numpy.core._multiarray_umath'
ModuleNotFoundError : aucun module nommé 'numpy.core._multiarray_umath'
ModuleNotFoundError : aucun module nommé 'numpy.core._multiarray_umath'
ModuleNotFoundError : aucun module nommé 'numpy.core._multiarray_umath'

J'ai supprimé et recréé le venv mais l'erreur persiste. Il est probable que tout le code continue de s'exécuter sans aucune autre erreur.

Je ne sais pas quoi faire ensuite. S'il existe une solution, veuillez me le faire savoir, sinon à mon humble avis, ces problèmes ne devraient pas être fermés.

Un problème similaire est suivi ici :
https://github.com/alpacahq/pylivetrader/issues/73

Pour info, je viens de résoudre ce problème en forçant une réinstallation de numpy et pandas comme suit :

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

Plus de message d'erreur.

Résolu ce problème !

  1. J'avais le même problème dans numpy.load('myfile.py'):

Traceback (appel le plus récent en dernier) :
Déposer "", ligne 1, dans
Fichier "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py", ligne 421, en charge
pickle_kwargs=pickle_kwargs)
Fichier "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py", ligne 650, dans read_array
tableau = pickle.load (fp, ** pickle_kwargs)
ModuleNotFoundError : aucun module nommé 'numpy.core._multiarray_umath'

  1. Dans un environnement virtuel Anaconda, la configuration suivante a résolu ce problème dans mon cas.

numpy 1.16.0
pandas 0,22,0
pip 18.1 py36_0
python 3.6.8 h0371630_0

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

J'espère que cela t'aides!

Résolu ce problème !

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

Traceback (appel le plus récent en dernier) :
Fichier "", ligne 1, dans
Fichier "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py", ligne 421, en charge
pickle_kwargs=pickle_kwargs)
Fichier "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py", ligne 650, dans read_array
tableau = pickle.load (fp, ** pickle_kwargs)
ModuleNotFoundError : aucun module nommé '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

J'espère que cela t'aides!

J'ai eu ce problème et cela a résolu le problème pour moi aussi. Merci!

Mettez à jour numpy avec pip et cela fonctionnera :

pip install --upgrade numpy

@mlsmall merci. c'est magique.

Cette page vous a été utile?
0 / 5 - 0 notes