apt-getでinstallしたpython-opencvがimport出来なかった

$ python
Python 2.5.2 (r252:60911, Jan 24 2010, 14:53:14)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  ImportError: No module named cv

python-opencvとしてinstallしたファイルはどこに

dpkgでLオプションを使うと表示できるようだ

$ dpkg -L python-opencv
/.
/usr
/usr/lib
/usr/lib/python-support
/usr/lib/python-support/python-opencv
/usr/lib/python-support/python-opencv/python2.5
/usr/lib/python-support/python-opencv/python2.5/opencv
/usr/lib/python-support/python-opencv/python2.5/opencv/_highgui.so
/usr/lib/python-support/python-opencv/python2.5/opencv/_cv.so
/usr/share
/usr/share/doc
/usr/share/doc/python-opencv
/usr/share/doc/python-opencv/copyright
/usr/share/doc/python-opencv/changelog.Debian.gz
/usr/share/doc/python-opencv/changelog.gz
/usr/share/python-support
/usr/share/python-support/python-opencv
/usr/share/python-support/python-opencv/opencv
/usr/share/python-support/python-opencv/opencv/highgui.py
/usr/share/python-support/python-opencv/opencv/__init__.py
/usr/share/python-support/python-opencv/opencv/matlab_syntax.py
/usr/share/python-support/python-opencv/opencv/cv.py
/usr/share/python-support/python-opencv/opencv/adaptors.py

/usr/share/python-support/python-opencv/opencv ディレクトリにcv.pyがあるので、ここにpythonのパスを通せば使えそう。

だが、同じディレクトリに__init__.pyがある。これはディレクトリのパッケージを初期化するファイル。

これが存在するということは、opencvというディレクトリがパッケージであるということなのだ。なのでopnecvとしてimportすれば使える。

$ python
Python 2.5.2 (r252:60911, Jan 24 2010, 14:53:14)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import opencv
>>>

ただ調べてみて分かったのは、import opencvしかできないのは古いパッケージで、新しいパッケージではpythonのパス以下にcv.soがあり、import cvが使えるようだった…。

  • import cvでokバージョン

    $ dpkg -s python-opencv |grep Version
    Version: 2.1.0-3+squeeze1
    
  • import cv だめだったバージョン

    $ dpkg -s python-opencv|grep Version
    Version: 1.0.0-6.1