MacにOpencvを入れてPython3を走らせようと思ったけどかなりのErrorと戦った!
この記事はこんな人にオススメです.
  • タイトルにある状況の人.
    以下のErrorが出てきた人
  • No module named ‘cv2’
  • dlopen(/Users/***/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so, 2): Library not loaded: @rpath/libhdf5.10.dylib

Macにpython3とOpencvを入れていざ実行!!
テンションMAXでプログラム回すぜー!!ってなっていても,Errorの連続が続きました.

インターネットをあれこれ見て対処法を色々と検索したのですが,どれも上手くいかない...

根気強く色々やったら最終的には解決しましたが,日本語のページだけではなく,Google翻訳を駆使して海外のサイトにまでいく始末.

今回はおいらみたいな犠牲者が新たに増えないためにも,Errorの解消法を記しておきます.

前提として

パソコン自体には,Opencv(cv2)をインストールしています.

しかし,インターネットに書かれている事をあれやこれや実行してしまったため,入っているのは確認できますが,どうやってインストールしたのかは覚えていない!

そしてErrorに遭遇したという前提を無視しないでください.

No module named ‘cv2’

まずこれ.ターミナルで $ 「python3」と打って,その後にcv2が使えるか確かめます!(import cv2を入力
すると

えっ!!「ImportError: No module named ‘cv2’」!!!
おかしい,確かにcv2は使える状況だぞ!python2 の方で確かめて見ました.

ほら!!しっかり回る!!python2ではcv2 がインポートできるようだ,
(しかしpython3で使えるその他ライブラリのため,どうしてもpython3でcv2を使えるようにしなければならない)

python3でcv2がimportされない原因と対策

色々調べましたら,おいらのpyrhon3はanaconda環境らしいです.そして,Opencvのインストールはbrewの方で行なっていたのが原因でした.
なんだと!そんな事知るか!って感じでしたがそうらしいです.

そのためanaondaを使ってopencvのインストールを行います.
(参考:Anacondaを使ってMac OSにOpenCVをインストールする
ターミナル上で以下を実施します.

pyenvのインスールとパスを通すコマンド(.bash_profileへ)

その後,anacondaを使ってOpencvを入れていきます.
anacondaのバージョン(3-5.2.0)は使っているpythonに合わせてください.

おいらの場合は3.5.2だったので合わせます.

これで完成です!...

 

dlopen(/Users/~~~/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so, 2): Library not loaded: @rpath/libhdf5.10.dylib

先ほどの処理を終え,’import cv2′ をpython3下で実行するとこんなErrorが出てきました.
いや,長すぎでしょ.

しかもReason:にも変な事言われてますし.

環境を整えていきます

こちらのエラーに対して以下の記事があって実行しました.
(参考:openCVのImportErrorとかの話

Library not loaded: @rpath/libhdf5.10.dylib

この一文が出ているので,@rpathにlibhdf5.10.dylibを通せばなんとかなるらしい!よしやるぞ!

しかし,Errorが出てきておいらの環境だとダメでした.

その後色々調べると,この一文で解決しました

(参考:Macでopencv3をインポートするとlibfreetype.6.dylibエラー

時系列的に解決していっているので,正直何が効いているのか微妙です.
最後の「conda update –all」だけでも良いかもしれませんし,上の「hdf5」のインストールが必要になるかもしれません.

しかし,なんとかこれでエラーが消えましたー!

ようやくcv2がインポートできるようになりましたとさ...

めでたしめでたし