gpt4 book ai didi

python - 使用 matplotlib 时我得到 `No module named _multiarray_umath`

转载 作者:太空狗 更新时间:2023-10-29 23:56:36 33 4
gpt4 key购买 nike

当我在 CI 中运行测试时,出现以下错误:

ImportError while importing test module '/home/tests/test_process.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
...
.tox/py27/lib/python2.7/site-packages/matplotlib/pyplot.py:31: in <module>
import matplotlib.colorbar
.tox/py27/lib/python2.7/site-packages/matplotlib/colorbar.py:36: in <module>
import matplotlib.contour as contour
.tox/py27/lib/python2.7/site-packages/matplotlib/contour.py:14: in <module>
import matplotlib._contour as _contour
E ImportError: numpy.core.multiarray failed to import
----- Captured stderr -----
ImportError: No module named _multiarray_umath

这是怎么回事?我没有对我的代码进行任何更改,但是突然之间我的构建开始失败。

最佳答案

解决方案

在安装 sdist 之前,使用 pip 单独安装 numpy。

对于 tox,将 numpy 直接添加到您的 deps 数组。

为什么会这样?

Numpy 最近向 pypy 发布了 numpy-1.16.0rc2,这就是(结合 easy_install 中的错误/疏忽)破坏了你的构建:

pip 知道默认情况下不安装 RC,但 easy_install(matplotlib 使用它来进行构建)不知道。如果您要对一大堆 -vvvvvv 执行 sdist,您会看到类似这样的内容:

gcc ... -I/tmp/pip-install-Eh8d9d/matplotlib/.eggs/numpy-1.16.0rc2-py2.7-linux-x86_64.egg/numpy/core/include ... -o build/temp.linux-x86_64-2.7/src/_contour.o

请特别注意,matplotlib 是针对 numpy-1.16.0rc2-py2.7 构建的。但是在另一个地方你可能会看到类似的东西

Successfully installed ... numpy-1.15.4 ...

因此,当您尝试运行程序时,matplotlib 将尝试访问非 RC 版本的 numpy 中不存在的模块,但会失败。

如果您已经安装了 numpy,easy_install 将不会尝试获取它自己的版本,而是使用(正确的)现有版本。

另见

关于python - 使用 matplotlib 时我得到 `No module named _multiarray_umath`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54153886/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com