Pythonにおけるno module namedエラーの回避方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonにおけるno module namedエラーの回避方法について現役エンジニアが解説しています。no module namedエラーはimportしようとしたモジュールが無い場合に発生する例外エラーです。モジュールが存在しないことやインストールしていないことが原因です。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonにおけるno module namedエラーの回避方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
目次
- no module namedエラーとは?
- moduleとは
- moduleを利用する方法
- no module namedエラーが発生する原因
- no module namedエラーを発生させないために確認すること
- まとめ
- 執筆してくれたメンター
- Pythonを学習中の方へ
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonにおけるno module namedエラーの回避方法について詳しく説明していくね!
お願いします!
no module namedエラーとは?
ModuleNotFoundErrorは、importキーワードで指定したモジュールが存在しない場合に発生する例外です。
エラーメッセージはno module named <モジュール名>
です。
moduleとは
Pythonにおけるmodule(モジュール)とは、機能や役割ごとに処理をまとめたObject(オブジェクト)です。
Pythonでは、method(メソッド)やClass(クラス)をmoduleというファイルにまとめます。
Pythonのmethodとは、Classで定義されている関数であったり、Objectの属性として参照することができる関数を意味します。
Pythonのmethodを利用する場合は、次のような文法で利用します。
オブジェクト.メソッド(引数)
PythonのClassとは、新しいデータの型を作る際の設計図です。
Classを用意することで、同じ処理を何度も実装する必要がなくなります。
PythonのClassを利用する場合は、次のような文法で利用します。
class クラス名: def メソッド名(引数): # 処理
Objectとは、変数などのデータやデータを処理する関数の集まりです。
moduleを利用する方法
実際にmoduleを利用するための基本的な考え方を解説していきます。
moduleを利用するためのサンプルコード1
from モジュール(拡張子不要) import クラス名
解説1
moduleを利用する場合、moduleファイルを用意する必要があります。
例えば、animals.pyという動物関連の役割をまとめたモジュールがある場合、以下のように記述します。
from animals
.pyという拡張子を記載せず処理を書くことで、animalsモジュールから機能を利用することを宣言します。
そして、animalsモジュールにDogというClass(クラス)が用意されている場合、以下のように記述します。
import Dog
つまり、animalsモジュールからDogクラスを利用する場合は、以下のように記述します。
from animals import Dog
moduleを利用するためのサンプルコード2
import モジュール(拡張子不要)
解説2
例えば、animals.pyという動物関連の役割をまとめたモジュールがあり、animalsモジュールをすべて使いたい場合は以下のように記述します。
import animals
.pyという拡張子を記載せず処理を書くことで、animalsモジュール全体を読み込むことが可能です。
no module namedエラーが発生する原因
no module namedエラーが発生する原因は、以下の2つです。
・指定したモジュールが存在しない場合
・指定したモジュールが存在するが未インストールの場合
2つの原因について、それぞれ解説します。
例1 指定したモジュールが存在しない場合
ここでは、指定したモジュールが存在しない場合のエラーを解説します。
サンプルコード
from animals import Dog
実行結果
発生エラー
ModuleNotFoundError: No module named 'animals'
解説
from animals import Dogを実行するとModuleNotFoundError: No module named ‘animals’というエラーが発生します。
これは、animalsというモジュールは存在しないことが原因です。
解決方法
次のようにanimalsモジュールを用意すればエラーは発生しません。
今回はDogクラスでbow!とほえる機能を利用しています。
例2 指定したモジュールが存在するが未インストールの場合
ここでは、指定したモジュールが存在するが未インストールの場合のエラーを解説します。
サンプルコード
import requests
実行結果
発生エラー
ModuleNotFoundError: No module named 'requests'
解説
Pythonでは、HTTP処理に有用なrequestsというモジュールがあります。
しかし、標準ではインストールされません。
そのため、上記コードを実行すると以下のようなエラーが発生します。
ModuleNotFoundError: No module named 'requests'
解決方法
pipコマンドでrequestsモジュールをインストールするとrequestsモジュールを利用できるようになります。
pip install requests
pipコマンドに関してはこちらの記事を参考にしてください。
no module namedエラーを発生させないために確認すること
上述の例で見たように、ModuleNotFoundErrorの原因は、指定のモジュールが存在しないことです。
以下の点などを確認します。
- モジュール名が間違っていないか
- モジュールがカレントディレクトリに存在するか
- pipコマンドでインストール済みか
まとめ
ModuleNotFoundErrorは、importキーワードで指定したモジュールが存在しない場合に発生する例外であることを解説しました。
Pythonにおけるmodule(モジュール)とは、機能や役割ごとに処理をまとめたObject(オブジェクト)です。
また基本的なmoduleの使い方として、2つの操作がありました。
- moduleファイルを用意すること
- moduleファイルをimportすること
2つの操作によってmoduleの使い方を学習しました。
基本的なmoduleの使い方とエラーの回避方法を習得することで、今後のプログラミング学習や業務への理解が高まります。
執筆してくれたメンター
中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長 開発実績:PHPフレームワークによるフランチャイズ企業向け会員制SNS。Shopifyによる海外進出用大規模ネットショップ構築。Vue.jsによる金融機関向け内部アプリ。AWSやLinuxハウジングサーバでの環境構築。人工知能を利用した画像判別システム。小売チェーン店舗用スマホアプリ。WordPressによる不動産チェーン店向け賃貸・売買仲介システム。基幹システム移管用データコンバートシステム。
小学生がオリジナルAndroidアプリをGoogle Playでリリース、NHK Whyプログラミング入賞、全国Programing Festival入賞、中学生がSNS型PWAアプリリリースなど、ボランティアプログラミング教育活動行っている。 |
内容が分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Pythonを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!