Numpy: 导入错误:numpy.core._multiarray_umath 导入失败

创建于 2018-09-03  ·  36评论  ·  资料来源: numpy/numpy

你好,

我正在安装一堆需要 NumPy(例如 TensorFlow)的软件包,但由于 numpy 端的 ImportError,我似乎无法安装和导入它们。

pip install和从源代码构建都会发生这种情况。

重现代码示例:

import numpy as np
import tensorflow as tf

错误信息:

ImportError: numpy.core._multiarray_umath failed to import

Numpy/Python 版本信息:

'1.16.0.dev0+cdbf35b'

最有用的评论

pip install --upgrade numpy

这删除了以前的版本并安装了较新的版本..这为我解决了问题

所有36条评论

我觉得这也可能是一些系统问题,因为即使是较老的 numpy 也会给我同样的错误

我们需要更多信息来帮助您。 import numpy as np成功然后import tensorflow as tf失败? 如果是第一个,那么应该有更多关于异常的信息。 如果是第二个,你从哪里得到tensorflow? 你用的是哪条蟒蛇?

@mattip

是后者(如:我可以import numpy一切顺利,但是 TF 是无法导入的那个)。

这是完整的跟踪(我使用的是最新的 Miniconda shell 文件):

```Python 3.6.5 |Anaconda, Inc.| (默认,2018 年 4 月 29 日,16:14:56)
输入“版权”、“信用”或“许可”以获取更多信息
IPython 6.5.0——增强的交互式 Python。 类型 '?' 求助。

在 [1] 中:将 numpy 导入为 np

在 [2] 中:将 tensorflow 导入为 tf

导入错误回溯(最近一次调用最后一次)

导入错误:numpy.core._multiarray_umath 导入失败

导入错误回溯(最近一次调用最后一次)

导入错误:numpy.core._multiarray_umath 导入失败

导入错误回溯(最近一次调用最后一次)

导入错误:numpy.core._multiarray_umath 导入失败

导入错误回溯(最近一次调用最后一次)
导入错误:numpy.core._multiarray_umath 导入失败

在 [3] 中:np.__version__
输出[3]:'1.15.1'
``

自从我想链接到我的本地 MKL 以来,我一直从源代码构建 Numpy 和 Scipy,但是当我开始收到 ImportError 时,我开始摆弄pip install ing numpy 但这个错误仍然存​​在

In [3]: np.__version__
Out[3]: '1.15.1'

这很奇怪, _multiarray_umath模块是 master 中的新模块。 也就是说,我怀疑最近的代码重新排列是您问题的根源。

如果您正在使用开发 numpy,则可能需要重新编译 tensorflow。

并且可能删除所有已安装的非系统 numpy 版本并重新安装。

谢谢@charris ! 几乎可以肯定,有一些错误的缓存导致了这个导入错误; 我刚刚构建了一个干净的 Docker 并且刚刚测试了 numpy(pip 和 build)和 Tensorflow(现在只是 pip)的导入,并且在导入 TF 时,两个版本的 numpy 检查都很好!

我将继续安装其他软件包并报告这是否真的是一个糟糕的巧合,或者是否有其他软件包在此过程中做了一些顽皮的事情!

是的,一切都很好! 感谢您的快速回复,现在关闭(仍然不确定为什么会出错,但至少现在可以使用了!)。

链接到#10915 代码重组 PR。

嗨,面对与 Django 相同的问题(警告完全相同的错误),并且任何重新安装、清除缓存(pip)都不起作用。 知道为什么会这样吗?
谢谢!

@amehrdad88这与 Django 无关。 重要的是您如何安装 Python,以及您如何安装 NumPy 以及您使用的其他依赖于 NumPy 的软件包。 通过查看回溯或检查numpy.__file__来检查您正在使用您认为正在使用的内容(例如来自同一个 virtualenv / conda env 的所有内容)。

@amehrdad88这与 Django 无关。 重要的是您如何安装 Python,以及您如何安装 NumPy 以及您使用的其他依赖于 NumPy 的软件包。 通过查看回溯或检查numpy.__file__来检查您正在使用您认为正在使用的内容(例如来自同一个 virtualenv / conda env 的所有内容)。

好的谢谢我会检查虽然我只是使用了官方网站上的 Python 安装程序,然后是 virtualenv 和来自 pip 的所有其他东西,所以应该不会造成任何大问题! 我会尝试重新安装一切。

@rgommers似乎是其他软件包的问题,​​但不确定是哪个。 我重新安装了所有东西并遇到了同样的问题,所以我刚刚创建了一个只有 numpy 和 tensorflow 的测试 venv; 导入 tensorflow 作品。 当我从 requirements.txt 文件安装其他包(使用 pip)时,当我尝试导入 tensorflow 时,错误再次出现。

可能是正在加载的其中一个包中的 numpy 有错误吗? 即使我只导入 tensorflow 也会加载这个包吗?

注意:我还有一个警告“FutureWarning:不推荐将 issubdtype 的第二个参数从floatnp.floating已弃用”,它通过更新 h5py 消失了

@amehrdad88此问题已关闭。 请准确记录您正在执行的命令,并在安装 tensorflow 之后的每个步骤后尝试导入 tensorflow。 如果您仍然认为问题出在 NumPy 而不是另一个包,请打开一个新问题并将文档与输出一起附加。

可能是正在加载的其中一个包中的 numpy 有错误吗? 即使我只导入 tensorflow 也会加载这个包吗?

不,那不太可能。 发生的事情可能是pip以某种方式重新安装 numpy,因为它是通过requirements.txt拉进来的。 或者你的 PYTHONPATH 上有一个包。 或者. 如果你一个一个地检查和导入包,你应该能够找到哪个有问题,以及它是否从你干净的 virtualenv 外部引入了一些东西。

在 CircleCI 上构建我的应用程序时,我开始出现这种行为。 在外壳中:

Python 2.7.14 (default, Sep 18 2017, 00:00:00)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import pandas as pd
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
>>> np.__file__
'/usr/local/lib/python2.7/dist-packages/numpy/__init__.pyc'
>>> pd.__file__
'/usr/local/lib/python2.7/dist-packages/pandas/__init__.pyc'

这个构建在 4 天前运行良好,但现在我的构建失败了,没有对 requirements.txt 进行任何更改。 最近有什么变化吗? 我正在运行 numpy 1.14.3 和 Pandas 0.20.3

作为后续行动, pip install首先(单独)使用 numpy,然后大熊猫为我做了这个伎俩......

在 CircleCI 上构建我的应用程序时,我开始出现这种行为。 在外壳中:

Python 2.7.14 (default, Sep 18 2017, 00:00:00)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import pandas as pd
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
>>> np.__file__
'/usr/local/lib/python2.7/dist-packages/numpy/__init__.pyc'
>>> pd.__file__
'/usr/local/lib/python2.7/dist-packages/pandas/__init__.pyc'

这个构建在 4 天前运行良好,但现在我的构建失败了,没有对 requirements.txt 进行任何更改。 最近有什么变化吗? 我正在运行 numpy 1.14.3 和 Pandas 0.20.3

我有同样的问题,3 天前一切正常。 现在,当我尝试加载腌制文件时,突然出现此导入错误

c-extension 模块_multiarray_umath是 numpy 1.16.0 的新功能,可能在某处指示版本的混合或版本期望。 请注意,此问题已关闭,如果您认为 numpy 存在问题,请打开一个新问题,详细说明您在做什么。

尝试加载腌制文件时遇到类似问题:

with open(fl[0], 'rb') as f:
    pickle.load(f)
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-24-571299641ef6> in <module>
      1 with open(fl[0], 'rb') as f:
----> 2     pickle.load(f)

ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'

也许这应该重新开放。 不确定是否相关。

尝试使用pd.read_pickle时也会得到这个:


完整追溯

pd.read_pickle('/path/to/a/dataframe/foo.df')
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    165                 # We want to silencce any warnings about, e.g. moved modules.
--> 166                 return read_wrapper(lambda f: pkl.load(f))
    167         except Exception:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    148         try:
--> 149             return func(f)
    150         finally:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    165                 # We want to silencce any warnings about, e.g. moved modules.
--> 166                 return read_wrapper(lambda f: pkl.load(f))
    167         except Exception:

ImportError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    170                 return read_wrapper(
--> 171                     lambda f: pc.load(f, encoding=encoding, compat=False))
    172             # compat pickle

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    148         try:
--> 149             return func(f)
    150         finally:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    170                 return read_wrapper(
--> 171                     lambda f: pc.load(f, encoding=encoding, compat=False))
    172             # compat pickle

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in load(fh, encoding, compat, is_verbose)
    211 
--> 212         return up.load()
    213     except:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load(self)
   1042                 assert isinstance(key, bytes_types)
-> 1043                 dispatch[key[0]](self)
   1044         except _Stop as stopinst:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load_stack_global(self)
   1350             raise UnpicklingError("STACK_GLOBAL requires str")
-> 1351         self.append(self.find_class(module, name))
   1352     dispatch[STACK_GLOBAL[0]] = load_stack_global

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in find_class(self, module, name)
    134             module, name = _class_locations_map.get(key, key)
--> 135             return super(Unpickler, self).find_class(module, name)
    136 

~/anaconda3/envs/py35/lib/python3.5/pickle.py in find_class(self, module, name)
   1391                 module = _compat_pickle.IMPORT_MAPPING[module]
-> 1392         __import__(module, level=0)
   1393         if self.proto >= 4:

ImportError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_pickle(path, compression)
    176     try:
--> 177         return try_read(path)
    178     except:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    174                 return read_wrapper(
--> 175                     lambda f: pc.load(f, encoding=encoding, compat=True))
    176     try:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    148         try:
--> 149             return func(f)
    150         finally:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    174                 return read_wrapper(
--> 175                     lambda f: pc.load(f, encoding=encoding, compat=True))
    176     try:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in load(fh, encoding, compat, is_verbose)
    211 
--> 212         return up.load()
    213     except:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load(self)
   1042                 assert isinstance(key, bytes_types)
-> 1043                 dispatch[key[0]](self)
   1044         except _Stop as stopinst:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load_stack_global(self)
   1350             raise UnpicklingError("STACK_GLOBAL requires str")
-> 1351         self.append(self.find_class(module, name))
   1352     dispatch[STACK_GLOBAL[0]] = load_stack_global

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in find_class(self, module, name)
    134             module, name = _class_locations_map.get(key, key)
--> 135             return super(Unpickler, self).find_class(module, name)
    136 

~/anaconda3/envs/py35/lib/python3.5/pickle.py in find_class(self, module, name)
   1391                 module = _compat_pickle.IMPORT_MAPPING[module]
-> 1392         __import__(module, level=0)
   1393         if self.proto >= 4:

ImportError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    165                 # We want to silencce any warnings about, e.g. moved modules.
--> 166                 return read_wrapper(lambda f: pkl.load(f))
    167         except Exception:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    148         try:
--> 149             return func(f)
    150         finally:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    165                 # We want to silencce any warnings about, e.g. moved modules.
--> 166                 return read_wrapper(lambda f: pkl.load(f))
    167         except Exception:

ImportError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    170                 return read_wrapper(
--> 171                     lambda f: pc.load(f, encoding=encoding, compat=False))
    172             # compat pickle

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    148         try:
--> 149             return func(f)
    150         finally:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    170                 return read_wrapper(
--> 171                     lambda f: pc.load(f, encoding=encoding, compat=False))
    172             # compat pickle

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in load(fh, encoding, compat, is_verbose)
    211 
--> 212         return up.load()
    213     except:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load(self)
   1042                 assert isinstance(key, bytes_types)
-> 1043                 dispatch[key[0]](self)
   1044         except _Stop as stopinst:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load_stack_global(self)
   1350             raise UnpicklingError("STACK_GLOBAL requires str")
-> 1351         self.append(self.find_class(module, name))
   1352     dispatch[STACK_GLOBAL[0]] = load_stack_global

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in find_class(self, module, name)
    134             module, name = _class_locations_map.get(key, key)
--> 135             return super(Unpickler, self).find_class(module, name)
    136 

~/anaconda3/envs/py35/lib/python3.5/pickle.py in find_class(self, module, name)
   1391                 module = _compat_pickle.IMPORT_MAPPING[module]
-> 1392         __import__(module, level=0)
   1393         if self.proto >= 4:

ImportError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
<ipython-input-44-2ad6813d006d> in <module>()
----> 1 pd.read_pickle('/Users/riley/main/build_0003/reps/lobsang/konami-api/src/app/v0/foo.df')

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_pickle(path, compression)
    178     except:
    179         if PY3:
--> 180             return try_read(path, encoding='latin1')
    181         raise
    182 

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    173             except:
    174                 return read_wrapper(
--> 175                     lambda f: pc.load(f, encoding=encoding, compat=True))
    176     try:
    177         return try_read(path)

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    147                             is_text=False)
    148         try:
--> 149             return func(f)
    150         finally:
    151             for _f in fh:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    173             except:
    174                 return read_wrapper(
--> 175                     lambda f: pc.load(f, encoding=encoding, compat=True))
    176     try:
    177         return try_read(path)

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in load(fh, encoding, compat, is_verbose)
    210         up.is_verbose = is_verbose
    211 
--> 212         return up.load()
    213     except:
    214         raise

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load(self)
   1041                     raise EOFError
   1042                 assert isinstance(key, bytes_types)
-> 1043                 dispatch[key[0]](self)
   1044         except _Stop as stopinst:
   1045             return stopinst.value

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load_stack_global(self)
   1349         if type(name) is not str or type(module) is not str:
   1350             raise UnpicklingError("STACK_GLOBAL requires str")
-> 1351         self.append(self.find_class(module, name))
   1352     dispatch[STACK_GLOBAL[0]] = load_stack_global
   1353 

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in find_class(self, module, name)
    133             key = (module, name)
    134             module, name = _class_locations_map.get(key, key)
--> 135             return super(Unpickler, self).find_class(module, name)
    136 
    137 else:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in find_class(self, module, name)
   1390             elif module in _compat_pickle.IMPORT_MAPPING:
   1391                 module = _compat_pickle.IMPORT_MAPPING[module]
-> 1392         __import__(module, level=0)
   1393         if self.proto >= 4:
   1394             return _getattribute(sys.modules[module], name)[0]

ImportError: No module named 'numpy.core._multiarray_umath'

@rileypeterson这可能是问题 #12837 的重复。 无论如何,#12842 修复了 1.16.0 的酸洗问题(在 #12869 中向后移植到 1.16.1)。 它会随着 1.16.1 的发布而得到解决。

pip install --upgrade numpy

这删除了以前的版本并安装了较新的版本..这为我解决了问题

我遇到了同样的问题,numpy.core._multiarray_umath 无法导入

终于搞明白了,是numpy版本太低了,升级numpy到1.16.2,一切正常

numpy的卸载再更新升级

pip install -U numpy升级numpy 就可以了

这成功了:)
pip install --upgrade numpy

在 anaconda 提示符下:
pip uninstall numpy

然后:
pip install numpy

为我工作!

你好,
我正在安装一堆需要 NumPy(例如 TensorFlow)的软件包,但由于 numpy 端的 ImportError,我似乎无法安装和导入它们。
pip install 和从源代码构建都会发生这种情况。
重现代码示例:
将 numpy 导入为 np
将张量流导入为 tf
错误信息:
导入错误:numpy.core._multiarray_umath 导入失败

Numpy/Python 版本信息:
'1.16.0.dev0+cdbf35b'

我遇到了同样的问题。
我已经通过卸载 Theano、tensorflow 和 keras 解决了这个问题; 然后按以下顺序安装它们:

  1. 西诺
  2. 张量流
  3. 凯拉斯

numpy的卸载再更新升级

就服你!别人英文提问,你中文回答!

@datianshi21我们的官方语言是英语。 谷歌翻译说你的评论是“Numpy卸载和更新
只为您服务! 别人用英文提问,你用中文回答!”
你是机器人吗?

pip install --upgrade numpy --user给了我错误:

mxnet-mkl 1.4.0 has requirement numpy<1.15.0,>=1.8.2, but you'll have numpy 1.16.3 which is incompatible.

卸载mxnet-mkl后一切正常。

当我安装熊猫时,它开始为我工作。 不知道为什么。

https://github.com/numpy/numpy/issues/11871#issuecomment -487995082

Pandas 安装 numpy 作为依赖项。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

MorBilly picture MorBilly  ·  4评论

Foadsf picture Foadsf  ·  3评论

dmvianna picture dmvianna  ·  4评论

Kreol64 picture Kreol64  ·  3评论

astrofrog picture astrofrog  ·  4评论