目標
- OpenCVをインストールする
環境
- Ubuntu 14.04.5 LTS
NumPyとOpenCVをインストール
$sudo apt-get install python-numpy
$sudo apt-get install python-opencv
※NumPyは依存モジュール
これでOpenCVは入ったはずだが、ここからエラーで動かなかったので対処
問題1:パスが通っていない
$python
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named cv2
よくみると、cv2.soへのパスが設定されていないことに気づく
[/usr/lib/python2.7/dist-packages/]
>>> import sys
>>> print sys.path
['', '/usr/local/pyenv/versions/2.7.13/lib/python27.zip', '/usr/local/pyenv/versions/2.7.13/lib/python2.7', '/usr/local/pyenv/versions/2.7.13/lib/python2.7/plat-linux2', '/usr/local/pyenv/versions/2.7.13/lib/python2.7/lib-tk', '/usr/local/pyenv/versions/2.7.13/lib/python2.7/lib-old', '/usr/local/pyenv/versions/2.7.13/lib/python2.7/lib-dynload', '/usr/local/pyenv/versions/2.7.13/lib/python2.7/site-packages']
>>> exit()
$sudo updatedb
$locate cv2
/usr/lib/python2.7/dist-packages/cv2.so
/usr/src/linux-headers-4.4.0-75/arch/arc/include/asm/entry-arcv2.h
/usr/src/linux-headers-4.4.0-75/arch/arc/include/asm/irqflags-arcv2.h
$
という訳で、PATHを追加して再実行する
>>> import sys
>>> sys.path.append("/usr/lib/python2.7/dist-packages")
>>> print sys.path
['', '/usr/local/pyenv/versions/2.7.13/lib/python27.zip', '/usr/local/pyenv/versions/2.7.13/lib/python2.7', '/usr/local/pyenv/versions/2.7.13/lib/python2.7/plat-linux2', '/usr/local/pyenv/versions/2.7.13/lib/python2.7/lib-tk', '/usr/local/pyenv/versions/2.7.13/lib/python2.7/lib-old', '/usr/local/pyenv/versions/2.7.13/lib/python2.7/lib-dynload', '/usr/local/pyenv/versions/2.7.13/lib/python2.7/site-packages', '/usr/lib/python2.7/dist-packages']
>>> import cv2
libdc1394 error: Failed to initialize libdc1394
>>> exit()
すると、別のエラーが発生
問題2:RAWデバイスが存在しない
エラー内容をGoogleで調べると、対処した人のコメントがあったので採用する
ただし「It is not a permanent solution.」ともあるのでそのうち違う退避作が出てくるかも
$ sudo ls /dev/raw1394
ls: cannot access /dev/raw1394: No such file or directory
$sudo ln /dev/null /dev/raw1394
$python
>>> import sys
>>> sys.path.append("/usr/lib/python2.7/dist-packages")
>>> import cv2
>>> cv2.__version__
'2.4.8'
参考:OpenCV: libdc1394 error: Failed to initialize libdc1394
問題1の恒久対策
sys.path.append("/usr/lib/python2.7/dist-packages")
でPATHを追加したが、設定したセッションのみ有効なため、毎回PATHを追加するのは面倒
定義ファイルを作成して自動でPATHが設定されるように変更
場所はsys.path
で表示されたPATHの中で、パッケージに関連しそうな
/usr/local/pyenv/versions/2.7.13/lib/python2.7/site-packages
にcustom.pth
を新規に作成する
/usr/lib/python2.7/dist-packages/