Python 文法・関数

マスターしよう!Pythonでimportを使う方法について徹底解説!

Pythonを学習し始めたばかりの人で「import」につまずいている人もいることでしょう。

そこで今回は

  • importの特徴や役割
  • モジュール・パッケージ・ライブラリについて
  • importの基本的な使い方から応用まで

について詳しく説明します。それでは見ていきましょう。


本ブログを運営しているTech Teacherは、業界初のプログラミング家庭教師サービスを提供しています。

その特徴は完全マンツーマン・フルオーダーメイド指導・30分ごとの利用が可能であるところです。

完全マンツーマン

Tech Teacherのマンツーマン指導なら理解できない箇所は何度も分かるまで説明を受けることができます。

フルオーダーメイド指導

Tech Teacherではあらかじめ決められたカリキュラムはありません。そのためご自身の学習状況や学びたいことに合わせた指導が可能です。

一括支払いなし

一般的なプログラミングスクールの料金体制はカリキュラムに対して一括払いですが、Tech Teacherでは利用した分だけの支払いとなります。そのため、大きな費用負担がなく気軽に始めることができます。

Pythonをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

importとは

「import」とは、Pythonでモジュールなどを利用するために使用するもので、ソースファイルの先頭に次のように記述します。

1.  import パッケージ

これからimportできるファイルの作成やimportのさまざまな方法について説明していきます。

モジュール・パッケージ・ライブラリ

importできるファイルには「モジュール」「パッケージ」「ライブラリ」など、さまざまな呼ばれ方をするものがあります。

「モジュール」とは関数やクラスなどをまとめて記述したファイルのことです。モジュールが複数集まって構成されているものを「パッケージ」と呼びます。
Pythonである程度長いプログラムを記述する場合には、コマンドラインではなく、「.pyファイル」に記述してモジュールとして保存することになります。

ちなみにPythonでは「ライブラリ」という言葉は厳格に定義されていませんが、モジュールやパッケージのことをライブラリとも呼ぶことがあります。

importの基本的な使い方

ここからは、実際にコードを使用してimportの基本的な使い方を説明していきます。

Pythonでは、importの後に取り込みたいファイルの拡張子を除いた名前を入力するだけで、簡単にモジュールなどをインポートすることができます。

試しにシステムに関する処理をまとめた「sys」をインポートしてみましょう。

1.  #! /usr/bin/env python
2.
3.  import sys
4.
5.  print (sys . version)

「sys . version」は、Pythonのバージョンを取得するメソッドで、printを実行すると現在使用しているPythonのバージョンが表示されます。

複数のPythonが入っている場合は異なるかもしれませんが、コマンドラインで「$ Python -V」を実行したときと同じバージョンになるはずです。

このように、importを行うことでさまざまな機能を扱うことができるようになりますよ。

複数モジュールのインポート

import文のあとに複数のモジュールを「 , 」で区切って記述することができます。

1. import モジュール1 , モジュール2

しかし、Pythonのコーティングスタイルガイドでは、この記述方法は推奨されていません。

推奨されているのは、次のように1つずつインポートする方法です。

1.  import モジュール1
2.  import モジュール2

また、fromを使用してオブジェクトをインポートする場合にもカンマで区切って記述することができますよ。

1.  from spam import foo , bar

オブジェクトを指定してインポート

あるモジュールから単独のオブジェクトをインポートする場合、「from モジュール名 import オブジェクト名」でインポートすることが可能です。

このときインポートされるのは指定されたオブジェクトのみで、インポートしたオブジェクトは「オブジェクト名」で直接使用することができますよ。

1. from math import e   # 自然対数の底
2.
3. print ( e )
4. # 実行結果
5. 2.718281828459045

このとき、インポートしなかったオブジェクトを使用するとエラーとなってしまうため注意してくださいね。

新しく名前をつけてインポート

インポートするときに名前を変更してインポートすることもできます。

1. from math import sqrt as rt
2. print(rt(2))
3. # 実行結果
4. 1.4142135623730951

ここではmathパッケージ内のsqrtモジュールを「rt」という名前でインポートしています。このとき、元の名前「sqrt」を呼び出すとエラーが返ってくるので注意してください。

名前を付けてのインポートはnumpyなどのパッケージを使用する際によく使用するので覚えておきましょう。

パッケージの作成・インポート

オブジェクト・モジュールをインポートする場合には構成や「_init_ . py」の記述によってインポート方法に注意する必要があります。

基本的に、どのようにインポートすればいいのかはドキュメントに記載されているので、わざわざ「_init_.py」を読む必要はありませんが、いろいろなパターンがあるのでこれから紹介していきます。

まずはパッケージを作成していきます。

1. # sample1.py
2. def sample1 ( ) :
3. print ( ‘これはサンプル1です. ‘ )
4.
5.  # sample2.py
6.  def sample2 ( ) :
7.  print ( ‘これはサンプル2です. ‘ )

これら2つのpyファイル「sample1.py」と「sample2.py」を1つのディレクトリ「sampletext」にまとめましょう。そうすることで、sampletextパッケージが作成できます。

1. sampletext    # パッケージ
2. +– sample1.py   # モジュール
3. +– sample2.py   # モジュール

現在、このような構成になっています。

さらに、パッケージを初期化するためのファイル「_init_.py」を作成する必要があります。「_init_,py」には次のように記述しましょう。

1. from . import sample1
2. from . import sample2

このように記述することで、複数のモジュールを簡単に扱えるようになります。
これでパッケージの完成です。最終的な校正は次のようになっています。

1. testsample    # パッケージ
2. +– _init_.py   # 初期化ファイル
3. +– sample1 . py   # モジュール
4. +– sample2 . py   # モジュール

こうして作成したパッケージを他のプログラムで使用するためにはインポートする必要があります。

1. import sampletext   # sample1とsample2がインポートされる

このコマンドだけで先ほど作成したパッケージ「sampletext」をインポートすることができます。

正しくインポートできない場合

インポート関係の主なエラーとして「ModuleNotFoundError」「AttributeError」の2つがあります。
それでは、それぞれ説明していきますね。

ModuleNotFoundErrorとは

「ModuleNotFoundError」はモジュールが見つからないエラーです。モジュール名が違う・モジュールがカレントディレクトリにない・pipコマンドでインストールしていないなどの場合にこのエラーが起こります。

1  ModuleNotFoundError : No module named ‘xxx’ 

例えば「numpy」モジュールをインポートしたいところを「numpi」と間違えて書いてしまった場合、次のようなエラーが起こります。

1. import numpi
2. #実行結果
3. Traceback ( most recent call last ) :
4.  File ‘Main.py’ , line 1 , in < module >
5. import numpi
6. ModuleNotFoundError : No module nemad ‘numpy’

こうしたエラーに対してはモジュール名のスペルを確認する、モジュールがインストール済みであるかどうかを確かめる、存在しない場合はインストールする、などの方法によって問題を解決することができます。

AttributeErrorとは

「AttributeError」はモジュールに指定した属性が見つからないエラーです。属性名のスペルミス・ファイル名とモジュール名が同一になっている・バージョンが違う・属性初期設定やメソッド入力に問題があるといった場合に起こります。

1  AttributeError : module ‘xxx’ has no attribute ‘yyy’

よくあるケースとして、インポートしようとしているモジュール名とファイル名が被っている場合があります。

1. import csv
2.
3. with open(‘test.csv’, ‘w’) as csv:
4.  fieldnames = [‘Name’, ‘Score’]
5.  writer = csv.DictWriter(csv, fieldnames=fieldnames)
6.  writer.writeheader()

ここではCSVファイルに書き込むプログラムを作成していますが、インポートしたいモジュール名「csv」と取り込んだCSVファイルを格納するファイルオブジェクトの名前「csv」が重複してしまっています。

このような場合にはAttributeErrorが生じてしまうため、ファイルオブジェクト名を別の名前に変更する必要があります。

「Tech Teacherで!~家庭教師ならではの3つの魅力~」

本Blogを運営するプログラミング家庭教師Tech Teacherは以下のような疑問をすべて解決できるサービスです。

・Pythonの応用をもっと学びたいが、値段が高いスクールに通うのは気が引ける

・目的別に短時間の利用ができるサービスがあったらいいな

比較対象 Tech Teacher プログラミングスクールA社
受講形態
1対1

1対3~5
担当教師
担任教師
×
講座別の講師
カリキュラム
自分専用指導

全員指導
仕事・学業との両立
可能
×
不可能
メンター制度
担任教師

異なる担当
料金
授業分だけ
×
一括払い
初期費用
入会金
22,000円
×
一括払い
528,000円
シミュレーション
(3ヶ月90分の指導を週1で行う)

164,500円
×
528,000円

以下、Tech Teacherの3つの魅力を紹介します。

Pythonをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

1.効率的な学習スタイル

一人のためだけの指導~1対1の完全個別指導~

一般的なプログラミングスクールでは大人数の対面講義や、録画講義の視聴またはオンラインでの受講がメインです。そうなると学習しながら生じた疑問をすぐに聞くことができずに、先に進んでしまい内容をうまく理解できなかったり、作業がうまく進まなかったりします。

家庭教師であれば、マンツーマンのため自分の課題にだけ焦点を当てて指導を受けられるので、1回の授業を濃い時間にすることができます。

無駄のない学習~フルオーダーメイド~

Tech Teacherは一般的なプログラミングスクールと異なり、あらかじめ決められたコースやカリキュラム設定がありません。
一般的なプログラミングスクールのカリキュラムでは、自分が本当に学習したいことを学ぶのにいくつか他の講義を受けなければなりません

Tech Teacherでは生徒様の現状の習熟度・目的・期間に応じてお悩みにダイレクトに刺さる授業を展開し、最短で目標となるゴールを目指せます。

2.自分のペースで学習できる

必要な分だけ~従量課金モデル~

Tech Teacherでは、他にはない「短時間(30分ごと)」の利用が可能です!勉強していてちょっとわからないところ、プログラミング学習のモチベーション維持など様々な疑問や悩みを解決することができます。
授業を受けた分だけ後払いする料金体系(3,960円〜 / 30分)のため、必要な期間に必要な分だけ受講できます。

好きな時間で~相性のいい教師の紹介~

Tech Teacherではあらゆるニーズに対応できる教師陣がいるため、生徒様の希望条件に最適な教師を紹介します。

Tech Teacherを受講している方のほとんどが仕事をしている社会人の方です。TechTeacherの家庭教師なら受講日時や回数を、生徒様のご都合に合わせて柔軟に調整することができ、スキルだけでなく都合の良い時間で指導できる教師を選べます。

3.確実に身につく

挫折しない~担任教師の継続指導~

オンライン・オンデマンドの講義の視聴形態だと、学習に対するモチベーションの維持が課題となり、当初の予定よりも受講期間が伸びたり、挫折したりする恐れがあります。

Tech Teacherでは、担任教師が生徒と二人三脚で学習をするため、学習が大変なときも寄り添ったサポートを受けられます。

具体的には学習計画の管理や受講目的を明確にした上で中間目標を設定し、それに向けた学習の指導をすることでモチベーションの維持を図ります。

いつでも質問できる~チャットサポート(オプション)~

担当教師は授業の時間以外に、チャットサービスを利用して、自分で学習しているときに生じた疑問をすぐに質問して解決することができます。

Javaをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

Tech Teacherへのお問い合わせ

質問のみのお問い合わせも受け付けております。

まとめ

今回Pythonのimportについて詳しく説明してきましたがいかがでしたでしょうか。

今回の要点をまとめると次のようになります。

  • importはモジュールやパッケージを利用利用するときに使用
  • モジュールとは関数やクラスをまとめて記述したファイル
  • パッケージとは複数のモジュールで構成されたもの
  • インポートの基本的な構文はfrom モジュール名 import オブジェクト名

Pythonの学習を進めるにつれて自作モジュールを作成して作業を効率化したい時があるでしょう。そういったときにインポート方法をマスターしておけば便利なので、ぜひこの機会に理解を深めておきましょう。

この記事を読まれた方には、こちらの記事もおすすめです!

ファイル操作をマスターしよう!Pythonでの読み込み・書き込み方法を徹底解説!Pythonを学び始めて、Pythonでテキストファイルを扱いたいと思い始めた人も少なくないでしょう。 そこで今回はPythonでテキ...
マスターしよう!PythonでのCSVファイル操作方法を徹底解説!Pythonを学習し始めた方で、CSVの扱いでつまずいている人もいるでしょう。 「PythonにおけるCSVの読み書きについて...
Pythonの出力関数printの要点をつかむ!基礎〜応用まで徹底解説Pythonを学習し始めたばかりの方で、print関数についてつまずいてしまう人も少なからずいるでしょう。 「Pythonのp...