はじめに
普段は Sublime Text でコーディングして、コマンドプロンプトから直接 python のスクリプトを実行しているのですが、たまたま jupyter notebook で教材的なものを作ってくれといわれてですね。OpenCV の講座だったので、とりあえず
In[1]: import cv2
ってやるじゃないですか。
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-8-d6821ef46d9e> in <module>()
----> 1 import cv2
ModuleNotFoundError: No module named 'cv2'
いやいやいや。俺普段 OpenCV 使ってるんですけど。
というわけで、なぜか import が通らない時に、確認・対処する方法をまとめておこうと思います。
モジュールのパスを調べる
パス確認するってただそれだけの話なんですけど、pprintっていう便利なライブラリがあるようなのでご紹介。
pprintはpretty-printの略らしいです。要はいい感じにprintしてくれます。笑
import sys
import pprint
pprint.pprint(sys.path)
['',
'C:\\Users\\hoge\\Anaconda3\\python36.zip',
'C:\\Users\\hoge\\Anaconda3\\DLLs',
'C:\\Users\\hoge\\Anaconda3\\lib',
'C:\\Users\\hoge\\Anaconda3',
'C:\\Users\\hoge\\AppData\\Roaming\\Python\\Python36\\site-packages',
'C:\\Users\\hoge\\Anaconda3\\lib\\site-packages',
'C:\\Users\\hoge\\Anaconda3\\lib\\site-packages\\Sphinx-1.5.6-py3.6.egg',
'C:\\Users\\hoge\\Anaconda3\\lib\\site-packages\\win32',
'C:\\Users\\hoge\\Anaconda3\\lib\\site-packages\\win32\\lib',
'C:\\Users\\hoge\\Anaconda3\\lib\\site-packages\\Pythonwin',
'C:\\Users\\hoge\\Anaconda3\\lib\\site-packages\\setuptools-27.2.0-py3.6.egg',
'C:\\Users\\hoge\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
'C:\\Users\\hoge\\.ipython']
リストが要素ごとに改行されてprintされました。見やすい。
別途 IPython を起動(こちらでは OpenCV のインポートができる)し、同様のことをしてみると
['',
'C:\\Anaconda2\\Scripts',
'C:\\Anaconda2\\python27.zip',
'C:\\Anaconda2\\DLLs',
'C:\\Anaconda2\\lib',
'C:\\Anaconda2\\lib\\plat-win',
'C:\\Anaconda2\\lib\\lib-tk',
'C:\\Anaconda2',
'C:\\Users\\hoge\\AppData\\Roaming\\Python\\Python27\\site-packages',
'c:\\anaconda2\\lib\\site-packages\\sphinx-1.3.5-py2.7.egg',
'c:\\anaconda2\\lib\\site-packages\\setuptools-20.3-py2.7.egg',
'C:\\Anaconda2\\lib\\site-packages',
'C:\\Anaconda2\\lib\\site-packages\\win32',
'C:\\Anaconda2\\lib\\site-packages\\win32\\lib',
'C:\\Anaconda2\\lib\\site-packages\\Pythonwin',
'C:\\Anaconda2\\lib\\site-packages\\wx-3.0-msw',
'C:\\Anaconda2\\lib\\site-packages\\IPython\\extensions',
'C:\\Users\\hoge\\.ipython']
え、きみ Anaconda2 から OpenCV 起動してたの?
……
というわけでどうやら Anaconda3 からは OpenCV が見れないらしいことがわかりました。
それらしきディレクトリを求めて C:\\Anaconda2\\lib\\site-packages
を探すと、確かにopencv-python
のパッケージらしきものが入っていることがわかります。
※ 追記 2019.01.19
久しぶりにこの記事を見返していて、「もしかしたらIPython自体が当時Python2だったのでは?」と思いました(現在はPython3に移行しているので真偽は定かでないのですが……)。
コンソール上でpython hoge.py
などと入力する際のパスと、IPythonを起動する際のパスは別物ですからね。そのあたりを確認してみるのも有効かもしれません。
Anaconda3 に OpenCV をインストールする
Anaconda Navigator を開きます。
左側のタブで Environments を開き、Search Packages で OpenCV を検索してみると確かに見つかりません。
root の右にある右向き三角から、 Open Terminal を選択。ターミナルが開きます。
ここで
pip install opencv-python
でめでたしでした。
Successfully installed opencv-python-3.4.3.18
どもども。import cv2
も通るようになりました。
参考
-
パスを調べましょうね~って話
-
pprintについて
-
Anacondaにパッケージをインストール
-
OpenCV3.4とPython3.6をAnacondaでWindows10へインストール - Qiita
- 本記事とはちょっと違った方法でインストールしてますが、当時
pip install opencv-python
が使えなかったとかなのかなあ。 - 画面のスクショ付きで解説してるのでわかりやすいです。僕の説明でよくわからなければこちらをみるとよいかと思います(投げやり)。
- 本記事とはちょっと違った方法でインストールしてますが、当時
-
OpenCV3.4とPython3.6をAnacondaでWindows10へインストール - Qiita