Teaprog.com

とあるエンジニアの日々の記録。エンジニアと関係のないようなことも書きます。

Pythonでの「ModuleNotFoundError」解決方法

はじめに

 

よく遭遇するエラーの内、「ModuleNotFoundError」を解決した方法を書きました。

 

私が実際に手を動かした記録なので、少し主観が入るかもしれませんが、少しでもご参考にしていただければ幸いです。

 

 参考記事:https://www.sejuku.net/blog/50417

 

実行環境:macOS Catarina 10.15.6

 

現在の日付:2020/09/21

 

エラー発生までの過程

 

以前の記事でpythonをインストールしました 。 

 

programmatictk0137.hatenablog.com

 

なので端末上でpythonと打つだけでpythonが使えるようになります。↓

 

f:id:tk0137:20200920124030j:plain

 

print()関数で適当な文字列を出力。↓

 

f:id:tk0137:20200920124402j:plain

 

exit()を入力してコマンド入力画面に戻る。↓

 

f:id:tk0137:20200920124514j:plain

 

また、別のファイルに書いたpythonコードも以下のようにコマンドで実行できます。↓

 

test.py

print("Hello World !!")

 

実行結果

f:id:tk0137:20200920125459j:plain

 

しかし、例えば次のプログラムを実行しようとするとエラーが発生してしまいます。

display.pyは入力した画像ファイルを読み込んで表示するプログラムです。

 

display.py

import cv2
print("image_path?",end = " : ")
img_path = input()
img = cv2.imread(img_path)
cv2.imshow('sample', img)
cv2.waitKey(0)
cv2.destroyAllWindows() 

 

実行結果

f:id:tk0137:20200920131922j:plain

 

上のエラーではcv2というモジュールがないとエラーメッセージが出ています。

 

解決方法

 

この系統のエラーはpipコマンドを使用して対象のモジュールをインストールすることで解決しました。 

 

pipとはPythonのパッケージを管理するためのツールです。

 

今回の場合はcv2モジュールをインストールするため、下のコマンドを実行します。

 

$ pip install opencv-python

 

f:id:tk0137:20200920192723j:plain 

 

pipでエラーが出る場合

 

バージョンが古い可能性があります。

 

pipそのものにもバージョンがあります。

 

月に1~2回くらいのペースで新しいバージョンがリリースされているように感じますので、適度に以下のコマンドを実行してpipをアップグレードしてください。

 

$ pip install --upgrade pip

 

f:id:tk0137:20200920193420j:plain

 以上の作業をした上で、エラーが改善されない場合は、以下の記事に詳細に対策を書いてみたので参考にしてください。 

 

programmatictk0137.hatenablog.com