初投稿です。
python3でopencvを使おうとしてハマったので、メモがわりに残します。
#環境
- Python 3.6.2
- pyenv-virtualenv
- macOS 10.14.6
#エラー内容
File "test.py", line 3, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
唐突に現れたimport文のModuleNotFoundError
なんかの拍子にopencv-python誤って消してしまったかと思い、確認
$ pip list
Package Version
--------------------- --------
...
opencv-python 4.1.0.25
...
普通にある...
とりあえず、直接pythonから叩いてimportしてみよう
Python 3.6.2 (default, Nov 18 2017, 21:22:04)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>
うーん、謎が深まった...
#やったこと
いろんな記事見ながらひたすらいろんなことを試した
- pip使ってもう一度opencv-python入れ直す
-
site-packages/cv2
以下のcv2.cpython-36m-darwin.so
をcv2.so
にrename -
$ pip install opencv-contrib-python
でopencv-contrib-pythonを入れる(利用法に注意してください。) $ brew install opencv3 --with-python3 --without-python --with-contrib
どれもダメでした...
#解決方法
cv2をimportする前にライブラリのパスを通す必要があったらしい
とりあえず下記のコードでなんとか動いた!
import sys
sys.path.append('/Users/yuta/.pyenv/versions/lab/lib/python3.6/site-packages')
import cv2
#原因
きっとパス関連の何かなのだと思う
詳しいことは勉強不足で結局わからずじまいであった...
とりあえず、投稿してみて強い人からコメント来るといいな
#参考記事
未経験大学生によるpython入門日誌-第4話 OpenCV篇
[Pythonチュートリアルをやってみる 特別編] (http://nimi0370376.hatenablog.com/entry/2017/07/11/024330)