概要
- Jupyter Notebook(Python3.7)でOpenCVをインポートしたらエラーが発生した際の解決メモ
環境
- Windows7(32bit)
- Jupyter Notebook5.6
- Python 3.7.0
行ったこと
- 久しぶりにJupyter Notebookで実験しようと以下のコードを書いて実行したら、エラーが発生した。
import numpy as np
import cv2
img = cv2.imread("C:\\Penguins.jpg", cv2.IMREAD_GRAYSCALE)
cv2.imshow("テストタイトル",img)
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-6-89f615e5c653> in <module>()
1 import numpy as np
----> 2 import cv2
3
4 img = cv2.imread("C:\\Penguins.jpg", cv2.IMREAD_GRAYSCALE)
5 cv2.imshow("テストタイトル",img)
ModuleNotFoundError: No module named 'cv2'
- 以前はこんなエラー出ていたっけ。Python2.7の環境で実験していたっけ?
- 今回、Python3の環境で実行していたんですが、気を取り直して、解決を試みる。
- ModuleNotFoundError と出ているから、環境設定系を見直してみます。
- Anaconda Navigatorを起動し、Environmentsの画面を開く。Python2.7環境にはOpenCVをインストールしてありましたが、Python3.7環境にはインストールしていないようです。
pip install opencv-python
- インストールが始まるのに、15秒近くかかり、どきっとしましたが無事にインストールが終了しました。
- Jupyter Notebookにてコードを再実行。無事にOpenCVのインポートが行えました。
[余談] OpenCVをバージョン指定してインストールするには
- 2019/2/24時点だとバージョン4がインストールされます。3系を指定してインストールする場合は、「パッケージ名==バージョン」指定するようです。バージョン4をアンインストール後、以下コマンドを実行しましたが、エラー発生
pip uninstall opencv-python
pip install opencv-python==3.4.5
Collecting opencv-python==3.4.5
Could not find a version that satisfies the requirement opencv-python==3.4.5 (from versions: 3.4.2
.16, 3.4.2.17, 3.4.3.18, 3.4.4.19, 3.4.5.20, 4.0.0.21)
No matching distribution found for opencv-python==3.4.5
You are using pip version 10.0.1, however version 19.0.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
- 以下の様にマイナーバージョンまで指定しなくてはいけないんですね。
pip install opencv-python==3.4.5.20
- こちらも成功しました。
2019/02/27 追記
上記記事より
Anaconda下でpipを使うと予期せず環境が破壊され、最悪の場合Anaconda自体の再インストールが必要になる。pipは慎重に使いましょう。