所有这些不同的答案表明许多不同的问题出现在ImportError: numpy.core.multiarray failed to import。
==> 所以在堆栈回溯之前寻找更多错误信息
例如重现此类问题的步骤(这些步骤在 numpy 1.20 发布之前运行良好):
# set up a virtualenv
pyenv virtualenv 3.8.7 pip-issue-9542
pyenv local pip-issue-9542
# update pip, setuptools
pip install -U pip setuptools
# install 2 pips
pip install --no-cache-dir numpy==1.19.5 cvxpy==1.1.3
# try to load cvxpy
python -c 'import cvxpy'
输出:
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/var/pyenv/versions/pip-issue-9542/lib/python3.8/site-packages/cvxpy/__init__.py", line 18, in <module>
from cvxpy.atoms import *
File "/usr/local/var/pyenv/versions/pip-issue-9542/lib/python3.8/site-packages/cvxpy/atoms/__init__.py", line 20, in <module>
from cvxpy.atoms.geo_mean import geo_mean
File "/usr/local/var/pyenv/versions/pip-issue-9542/lib/python3.8/site-packages/cvxpy/atoms/geo_mean.py", line 20, in <module>
from cvxpy.utilities.power_tools import (fracify, decompose, approx_error, lower_bound,
File "/usr/local/var/pyenv/versions/pip-issue-9542/lib/python3.8/site-packages/cvxpy/utilities/power_tools.py", line 18, in <module>
from cvxpy.atoms.affine.reshape import reshape
File "/usr/local/var/pyenv/versions/pip-issue-9542/lib/python3.8/site-packages/cvxpy/atoms/affine/reshape.py", line 18, in <module>
from cvxpy.atoms.affine.hstack import hstack
File "/usr/local/var/pyenv/versions/pip-issue-9542/lib/python3.8/site-packages/cvxpy/atoms/affine/hstack.py", line 18, in <module>
from cvxpy.atoms.affine.affine_atom import AffAtom
File "/usr/local/var/pyenv/versions/pip-issue-9542/lib/python3.8/site-packages/cvxpy/atoms/affine/affine_atom.py", line 22, in <module>
from cvxpy.cvxcore.python import canonInterface
File "/usr/local/var/pyenv/versions/pip-issue-9542/lib/python3.8/site-packages/cvxpy/cvxcore/python/__init__.py", line 3, in <module>
import _cvxcore
ImportError: numpy.core.multiarray failed to import
重要的线索是RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd。
在上面搜索可以找到pip issue 9542 和cvxpy issue 1229,它们可以解释问题所在。
在这种情况下,解决方法是 (a) 更新到 cvxpy>=1.1.10,或 (b) 更新到 numpy>=1.20,或 (c) 更新两者。您必须应对库更改,因为如果不深入 pip 的 --no-build-isolation 世界,原始环境是不可重现的。