Hi,
I got a problem similar to #11871. I recently installed numpy 1.16.0 but then I needed to downgrade and now I keep getting ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
.
The example below was working fine a week ago or so.
I actually ended up removing ALL Python packages (instructions here) and reinstalling them _one by one_ using apt-get
(Ubuntu 18.04.1 LTS), except for ipyparallel
and openbabel
, which were installed using pip
(I'm pretty sure both are unrelated to the problem). The example below was run _after_ all this clean-up.
It seems that a lot of people are having this issue lately, with different packages:
Below is a IPython session that shows the 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'
Some relevant files and versions:
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]: []
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
I'm using 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 @mattip mentioned that
The c-extension module
_multiarray_umath
is new to numpy 1.16.0, and may indicate a mix of versions, or version expectations, somewhere. Note this issue is closed, if you believe there is a problem with numpy please open a new issue detailing exactly what you are doing.
How come I get this error even though I have numpy 1.13.3? Thanks for all the help!
It seems like you are unpickling an array which was saved in numpy 1.16 in numpy 1.13.3
This one looks like a real bug. I think we might need to override ndarray.__module__
to be backwards-compatible.
I believe @tzickel is correct. I just regenerated data.h5
from scratch (which makes use of a script, this time definitely using numpy 1.13.3) and the code above worked.
% 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
I'm closing this since I belive it's solved. Thanks @tzickel!
I do not believe this error is resolved. I'm not using any pickle files and I am getting this exact same error.
I have this error recently since a few changes on my MAC. I followed all the best practices and can't seem to resolve this error.
Upgraded to MAC High Sierra (10.13.6)
installed both python 3.6 and python 3.7 to run side by side using home-brew and followed the guidelines presented here:
https://stackoverflow.com/questions/51726203/installing-python3-6-alongside-python3-7-on-mac
setup new virtual env to use python 3.6.5 and a bunch of other modules.
This error occurs in the virtual environment. Both notebooks and command line python code generate the error. The python code runs 100% correctly with no other errors than this message.
python my_py_file.py
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
I deleted and recreated the venv but the error persists. Likely all the code continues to run without any other errors.
I'm not sure what to do next. If there is a solution, please let me know otherwise IMHO this issues should not be closed.
A similar issue is being tracked here:
https://github.com/alpacahq/pylivetrader/issues/73
FYI, I just resolved this issue by forcing a reinstall of numpy and pandas as follows:
pip install --upgrade --force-reinstall numpy==1.14.5
pip install --upgrade --force-reinstall pandas==0.22.0
No more error message.
Solved this issue!
Traceback (most recent call last):
File "
File "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py", line 421, in load
pickle_kwargs=pickle_kwargs)
File "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py", line 650, in read_array
array = pickle.load(fp, **pickle_kwargs)
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
numpy 1.16.0
pandas 0.22.0
pip 18.1 py36_0
python 3.6.8 h0371630_0
Hope this helps!
Solved this issue!
1. I was getting the same issue in numpy.load('myfile.py'):
Traceback (most recent call last):
File "", line 1, in
File "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/npyio.py", line 421, in load
pickle_kwargs=pickle_kwargs)
File "/home/vivek/anaconda3/envs/Voiceattn/lib/python3.6/site-packages/numpy/lib/format.py", line 650, in read_array
array = pickle.load(fp, **pickle_kwargs)
ModuleNotFoundError: No module named '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_01. OS X version: macOS High Sierra v10.13.6
Hope this helps!
Been having this issue and this solved the problem for me, too. Thanks!
Update numpy with pip and it will work:
pip install --upgrade numpy
@mlsmall thanks. it is magic.
Most helpful comment
FYI, I just resolved this issue by forcing a reinstall of numpy and pandas as follows:
pip install --upgrade --force-reinstall numpy==1.14.5
pip install --upgrade --force-reinstall pandas==0.22.0
No more error message.