のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

ある日、いきなりOpenCVが動かなくなった

Sponsored Links

こんにちは。
お元気ですか?私は元気です。

今日は突然OpenCVが動かなくなった話をします。

どんなエラー?

>>> import numpy
>>> import cv2
RuntimeError: module compiled against API version 9 but this version of numpy is 6

原因

必要なのはAPIが9のバージョンに対して、今使われているのは6ですと。

解決方法

古いNumpyが優先されているので、優先されないように
古いNumpyをリネームしておく。

cd /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/
sudo mv numpy numpy_bad

分析

とりあえず、まずはnumpyのバージョンを調べてみる。
必要な部分以外は省略する。

sudo pip list
numpy (1.9.2)

ソースコードでも調べてみた。

>>> print numpy.__version__
1.6.2

なんか違う。
おそらく原因はこれです。
元々Macが持っている古いNumpyが利用されていることが原因です。

原因を探ると以下のサイトが出てきたので同様の行動を行ってみる。

cd /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/
sudo mv numpy numpy_bad

Pythonで確認してみる

>>> import numpy
>>> import cv2
>>> print numpy.__version__
1.9.2

これでOpenCVを動作させることができます。