icon
icon

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エラーの回避方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

目次

1時間でできる無料体験!

そもそも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とは、変数などのデータやデータを処理する関数の集まりです。

 

 

[PR] Pythonで挫折しない学習方法を動画で公開中

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モジュール全体を読み込むことが可能です。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

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コマンドでインストール済みか

 

1時間でできる無料体験!

まとめ

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)や機械学習の基礎を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する