LoginSignup
5
6

More than 5 years have passed since last update.

OpenCVをUbuntu+pythonにインストールする

Last updated at Posted at 2017-05-11

目標

  • 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-packagescustom.pthを新規に作成する

custom.pth
/usr/lib/python2.7/dist-packages/
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6