PythonでOpenCVを使おうとして ImportError: No module named cv って言われたら

環境

なにごと?

Pythonを覚えたら、やっぱりOpenCVやりたくなるじゃないですか。 で、おもむろにOpenCVを BUILD_PYTHON_SUPPORT=ON にしてインストールし、意気揚々とPythonを起動して

import cv

ってやるじゃないですか。

>>> import cv
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv

エラーになるじゃないですか。

なんでかなーと思ってPythonのモジュールのパスを調べてみると

>>> import sys
>>> print sys.path
['', '/usr/local/lib/python2.7/dist-packages/ipython-0.13.1-py2.7.egg', (以下略)]

OpenCVのPythonモジュールのパスが含まれてなさそうです。

OpenCVのPythonモジュールは、OpenCVをインストールしたディレクトリ配下の lib/python2.7/dist-packages にあるので、 このディレクトリを sys.path に追加してみます。

>>> import sys
>>> sys.path.append("/path/to/opencv/lib/python2.7/dist-packages")
>>> import cv
>>> cv.LoadImage("lenna.png")
<iplimage(nChannels=3 width=512 height=480 widthStep=1536 )>
>>>

どうやらできたっぽいですね。

OpenCVのモジュールを使うたびに毎回これをやるのは面倒なので、$PYTHONPATH にパスを追加しておきましょう。 .zshrcとかに

export PYTHONPATH=/path/to/opencv/lib/python2.7/dist-packages:$PYTHONPATH

って書いておけばよいです。

参考

InstallGuide : Debian - OpenCV Wiki