LoginSignup
32
39

More than 3 years have passed since last update.

jupyter notebookで、なぜかimportが通らない問題

Last updated at Posted at 2018-10-24

はじめに

普段は 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も通るようになりました。

参考

32
39
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
32
39