我在试着运行这个程序

import cv2
import time

cv.NamedWindow("camera", 1)

capture = cv.CaptureFromCAM(0)

while True:
    img = cv.QueryFrame(capture)
    cv.ShowImage("camera", img)
    if cv.WaitKey(10) == 27:
        break
cv.DestroyAllWindows()

但我有numpy的问题,我使用pyschopy与opencv一起使用。 我一直得到的问题是这个错误报告:

RuntimeError:根据API版本7编译的模块,但是numpy的这个版本是6 回溯(最近一次调用): 文件“C:\Users\John\Documents\EyeTracking\Programs\GetImage.py”,第一行,在 进口cv2 ImportError: numpy.core.multiarray导入失败

我在psychopy文件夹中有numpy-1.6.1-py2.7,我只是不知道哪里出了问题?


当前回答

对我来说,这是两部分。第一:

pip uninstall numpy

然后@Oli Blum回答(谢谢):

conda install -c conda-forge numpy

这招对我很管用

其他回答

这对我很管用。因此,您可以尝试以下命令

$ pip install numpy -I

我使用了Anaconda环境,也遇到了同样的问题。我尝试了上面提到的所有方法,唉,都无济于事。积累的建议,这里有帮助我的方法:

删除虚拟环境中的所有NumPy文件夹,如果不使用虚拟环境,则删除系统中的所有NumPy文件夹,例如我的例子: ~ / home / anaconda3 / env / / lib / python /网站/ numpy ~ / home / anaconda3 / env / / lib / python /网站/ numpy.libs ~ / home / anaconda3 / env / / lib / python /网站/ numpy -.dist-info 安装新的Numpy: pip install numpy -U

希望在同样的情况下能有所帮助

我得到了同样的错误,通过将我的numpy安装从1.7.1更新到1.12.1,问题得到了解决

pip install -U numpy

以下是错误发生时我的cmd序列, 与上面略有不同:

$ python

Python 2.7.12 |Anaconda 4.2.0 (x86_64)| (default, Jul  2 2016, 17:43:17) 

[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

Anaconda is brought to you by Continuum Analytics.

Please check out: http://continuum.io/thanks and https://anaconda.org

>>> import cv2

>>> import numpy as np

>>> from matplotlib import pyplot as plt

对我来说,这个错误出现在使用conda安装pygrib并导入它时。

conda install -c conda-forge numpy

解决了问题。

所有这些不同的答案都表明出现了许多不同的问题,例如ImportError: numpy.core.multiarray导入失败。

==>所以在堆栈回溯之前查找更多的错误信息

例如,重现一个这样的问题的步骤(这些步骤在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:模块根据API版本0xe编译,但numpy的这个版本是0xd。

搜索它可以让你找到pip issue 9542和cvxpy issue 1229,它们解释了哪里出了问题。

本例中的变通方法是(a)更新为cvxpy>=1.1.10,或(b)更新为numpy>=1.20,或(c)两者都更新。您必须处理库更改,因为如果不深入pip的“无构建隔离”世界,原始环境是不可复制的。