初心者プログラマのひとり勉強部屋

若葉マークのプログラマー☺️

【python入門】opencvインストールエラー

こんにちは!

 

今日はanacondaでopencvをインストールしたけど

ModuleNotFoundError: No module named 'cv2'

のエラーが出る対処法を備忘録。

結論から言います。

パスが通ってなかった。(こんなんばっかり!だけどありきたり)

→解決法

 

環境 

python3.7.4

anaconda

jupyter

 

状況

openCVを仮想環境上でインストール

 

openCV入っているか確かめる

jupyter

f:id:mocomo012:20191031222429p:plain

 

■まず作った仮想環境(app1)にopenCV入ってるか確かめた

openCVインストール状況の確認

anaconda navigator

f:id:mocomo012:20191031221928p:plain※app1には入ってる

 

f:id:mocomo012:20191031221851p:plain

※baseに入ってない

 

→どうやら作った仮想環境のapp1にはopenCV入っているけど

base(root)には入っていない。

app1のなかでcondaコマンドでインストールしたのだから当然。

jupyterではbase(root)をみに行っているっぽい?

  

(余談)

ちなみに仮想環境は

$ pyenv versions

  system

  3.7.4

* anaconda3-5.3.1 (set by /Users/[ユーザ名]/.pyenv/version)

  anaconda3-5.3.1/envs/django

 

最初3.7.4だったのを

$ pyenv global anaconda3-5.3.1

で変更しました。だからbaseは3.7.4を見に行っているのかも。

(ちなみに3.7.4にはopencv入ってない

 

 

解決

openCVの場所確かめる

ターミナル

(app1)$python

>>>import cv2

>>>print(cv2)

<module 'cv2' from '/Users/[ユーザ名]/opt/anaconda3/envs/app1/lib/python3.7/site-packages/cv2.cpython-37m-darwin.so'>

↑ここにいた!

 

■パス変更

jupyter上で

・import sys
・sys.path.append('/Users/[ユーザ名]/opt/anaconda3/envs/app1/lib/python3.7/site-packages')

↑パスは人によって違う

 

→解決!!

 

以下を参考にさせていただきました!

https://techracho.bpsinc.jp/katayama-yuuki/2017_04_13/35124

 

※追記勉強メモ

sys.pathはpythonライブラリをimportする先を設定しているみたいです(つまりライブラリへのpath)

”ここの場所(path)にあるライブラリを参照(import)してくださいね”ってことですね、、

$python

>>import sys

>>print(sys.path)

で今指定しているインポートできる先の一覧が表示されます。

上記appendでpathを追加できます。

※参考

https://www.sejuku.net/blog/66459 

 

 

これでやっと機械学習の勉強に没頭できる、、