我如何升级numpy?

时间:2015-02-14 17:00:01

标签: python opencv numpy homebrew anaconda

当我使用brew安装OpenCV时,每当我运行此命令来测试python -c "import cv2"

时,我都会遇到此问题
RuntimeError: module compiled against API version 9 but this version of numpy is 6
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: numpy.core.multiarray failed to import

我试图升级numpy,但这令人困惑

>>> import numpy
>>> print numpy.__version__
1.6.1

当我运行brew来升级numpy时,我遇到了这个问题。

brew install -u numpy
Warning: numpy-1.9.1 already installed

当我卸载它时

sudo pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in ./anaconda/lib/python2.7/site-packages

我已关注此thread并从我的Mac中删除了anaconda。

pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /Library/Python/2.7/site-packages

但一切都没有改变。如何将numpy版本链接到opencv?

12 个答案:

答案 0 :(得分:39)

因为我们在系统中有两个numpy。一个是由brew安装,第二个是由pip安装。因此,为了解决这个问题,我们需要删除一个并使用opencv的默认numpy安装。

检查路径

import numpy
print numpy.__path__

并使用rm

手动删除它

答案 1 :(得分:13)

您提到的错误发生在您的系统上有两个版本的numpy时。正如您所提到的那样,您导入的numpy版本仍未升级,因为您尝试通过pip升级它(它将升级'/Library/Python/2.7/site-packages'中存在的版本)。但是,Python仍会从预安装的软件包所在的 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy'加载软件包。要升级该版本,您必须使用easy_install。解决此问题的另一种方法是使用virtualenv并设置具有所需要求的新环境。

答案 2 :(得分:8)

当你已经有一个旧版本的numpy时,请使用:
I:\Database\Data\BSP_MIS_Archived_2.mdf

如果仍然无效,请尝试:
pip install numpy --upgrade

答案 3 :(得分:6)

FYI,

使用或导入Tensorflow时, 可能发生类似的错误(由numpy引起):

RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 23, in <module>
    from tensorflow.python import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 60, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
ImportError: numpy.core.multiarray failed to import


Error importing tensorflow.  Unless you are using bazel,
you should not try to import tensorflow from its source directory;
please exit the tensorflow source tree, and relaunch your python interpreter
from there.

我遵循了Elmira和Drew的解决方案sudo easy_install numpy,并且它已经工作了!

sudo easy_install numpy
Searching for numpy
Best match: numpy 1.11.3
Removing numpy 1.8.2 from easy-install.pth file
Adding numpy 1.11.3 to easy-install.pth file

Using /usr/local/lib/python2.7/dist-packages
Processing dependencies for numpy
Finished processing dependencies for numpy

之后我可以使用没有错误的Tensorflow。

答案 4 :(得分:3)

我尝试改为sudo pip uninstall numpy,因为rm最初没有工作。

希望这有帮助。

卸载然后重新安装。

答案 5 :(得分:3)

因为您安装了多个版本的numpy。

多次尝试pip uninstall numpypip list | grep numpy,直到看不到pip list | grep numpy的输出为止。

然后pip install numpy将为您提供numpy的最新版本。

答案 6 :(得分:1)

安装pytorch后,我使用时遇到了类似的错误:

import torch

删除numpy没有帮助(我实际上改名为numpy,所以在它没有工作后回复)。以下命令对我有用:

sudo pip install numpy --upgrade
sudo easy_install numpy

答案 7 :(得分:1)

都一样。

   sudo easy_install numpy

我的追溯

Searching for numpy

Best match: numpy 1.13.0

Adding numpy 1.13.0 to easy-install.pth file

Using /Library/Python/2.7/site-packages

Processing dependencies for numpy

答案 8 :(得分:1)

pip install numpy --upgrade

它对我有用

答案 9 :(得分:1)

如果您遇到没有许可错误的话 pip install -U numpy
尝试
pip install --user -U numpy

答案 10 :(得分:0)

如果您遇到无法访问root权限的计算机,那么最好处理自定义python安装。

anaconda装置就像一个魅力。

https://www.scipy.org/install.html

https://www.anaconda.com/download/

安装后,

  

[bash] $ / xxx / devTools / python / anaconda / bin / pip list --format = columns |   grep numpy

     numpy 1.13.3 numpydoc   0.7.0

答案 11 :(得分:0)

更新numpy

对于python 2

pip install numpy --upgrade

您还需要升级表,以获取numpy的更新版本。所以,

pip install tables --upgrade

对于python 3

pip3 install numpy --upgrade

类似地,python3的表:-

pip3 install tables --upgrade

注意:

您需要检查使用的是哪个python版本。 python 2.7+的pip或python 3+的pip3