Pythonのimport・as・from文でモジュール(ライブラリ)を読み込む方法について入門者向けにソースコード付きでまとめました。
モジュール、パッケージ、ライブラリの違い
Pythonにおける「モジュール」「パッケージ」「ライブラリ」は、コードを整理・再利用するための単位ですが、それぞれの範囲(スコープ)が異なります。
用語 | 定義 | スコープのイメージ | 例 |
---|---|---|---|
モジュール | 1つのPythonファイル(.py ) |
ファイル内で定義されたものをまとめた最小単位 | math.py (数学関数をまとめたモジュール) |
パッケージ | 複数のモジュールをまとめたフォルダ(__init__.py を含む)パッケージの中に含まれるモジュールを「サブモジュール」といいます |
モジュールを束ねて「1つのグループ」として扱える | numpy パッケージ(内部に多くのモジュールを含む) |
ライブラリ | 複数のパッケージやモジュールをまとめた集合体 | 「パッケージ」や「モジュール」をさらに大きくまとめたもの | NumPy(数値計算ライブラリ)、scikit-learn(機械学習ライブラリ) |
モジュール → パッケージ → ライブラリ の順に、スコープが広がっていきます。
モジュール = 1人のキャラクター(剣士や魔法使い)
パッケージ = パーティ(複数のキャラが集まった冒険チーム)
ライブラリ = ギルド(いろんなパーティが所属する大きな組織)
といったイメージです。

「標準ライブラリ」と「外部ライブラリ」
Pythonのライブラリは大きく分けて「標準ライブラリ」と「外部ライブラリ」の2種類があります。
種類 | 定義 | 特徴 | 例 |
---|---|---|---|
標準ライブラリ | Pythonに最初から付属しているライブラリ | ・追加インストール不要<br・すぐに利用可能 | datetime (日付・時刻の操作)csv (CSVファイル処理)os (OS操作)一覧はこちら |
外部ライブラリ | Pythonに最初からは含まれていないライブラリ | ・pip install などでインストールが必要・分野ごとに豊富な選択肢がある |
numpy (数値計算)matplotlib (グラフ描画)pandas (データ解析) |
標準ライブラリはPythonをインストールした瞬間から使えるのに対して、外部ライブラリは必要に応じて追加インストールする必要があります。

モジュール・ライブラリの読み込み(import文)
Pythonでは、import
文を使って モジュールやライブラリを読み込み ます。
これにより、他のファイルに定義された関数やクラスを自分のプログラム内で利用できるようになります。
書式
import モジュール名
import
文は プログラムの先頭 に書き、指定したモジュールやライブラリを読み込みます。
– のが一般的です。
サンプルコード
以下は、Pythonの標準ライブラリに含まれているdatetime
モジュールを読み込んで現在時刻を表示する例です。
import datetime
today = datetime.datetime.today()
print(today)
モジュールやパッケージ名のエイリアス(as文)
import
文に as
を付けると、モジュールやパッケージ名に好きな省略名(エイリアス) をつけられます。
特にモジュールやパッケージ名が長い場合、短い名前にするとコードが読みやすくなります。
書式
import モジュール名 または パッケージ名 as 好きな名前
サンプルコード
以下は、 標準ライブラリのdatetime
モジュールに dt
というエイリアスを付ける例です。
import datetime as dt
today = dt.datetime.today()
print(today)
datetime.datetime.today()
を dt.datetime.today()
と短く書けます。
例えば、`numpy` は「import numpy as np 」でライブラリ全体を `np` という名前で読み込むのが慣例です。また、`matplotlib.pyplot` は「import matplotlib.pyplot as plt」でモジュールを、`plt` という名前で読み込むのが定番です。
モジュール名の記述を省略(from文)
モジュールを import
すると、クラスや関数を呼び出すときに「モジュール名.クラス名/関数名」 と書く必要があります。
import datetime
today = datetime.datetime.today()
このように毎回モジュール名を書くのが面倒な場合、from
文を使うと 直接クラスや関数を読み込める ので記述が簡潔になります。
書式
from モジュール名 または パッケージ名 import クラス名/関数名/変数名
モジュール名
の場合 → そのモジュール内の要素を直接読み込みますパッケージ名
の場合 → そのパッケージ内のモジュールや要素を指定して読み込みます
サンプルコード
以下は、標準ライブラリのdatetimeモジュールからdatetimeクラスを読み込む例です。
from datetime import datetime
today = datetime.today()
print(today)
ここでは datetime
モジュールの中の datetime
クラスだけを直接読み込んでいます。
そのため、呼び出し時に モジュール名.
を書かずに済みます。
from文のパターン一覧表
パターン | 書式 | 意味 | 例 |
---|---|---|---|
モジュール → 要素 | from モジュール名 import クラス名/関数名/変数名 |
モジュールの中の特定の要素を直接読み込む | from datetime import datetime → datetime モジュールから datetime クラスを読み込む |
パッケージ → モジュール | from パッケージ名 import モジュール名 |
パッケージの中のモジュールを読み込む | from matplotlib import pyplot → matplotlib パッケージから pyplot モジュールを読み込む |
パッケージ.モジュール → 要素 | from パッケージ名.モジュール名 import クラス名/関数名 |
パッケージ内のモジュールから特定の要素を直接読み込む | from numpy.linalg import inv → numpy パッケージの linalg モジュールから inv 関数を読み込む |
自作モジュールの読み込み
① Pythonファイル(例:pikori.py
)を作成し、クラス/関数/変数を定義します。
■例:pikori.py
(自作モジュール)
# pikori.py
def greet(name):
return f"勇者ぴこりは {name} に元気よく挨拶した!"
HP = 100
class Hero:
def __init__(self, name="ぴこり", hp=HP):
self.name = name
self.hp = hp
def attack(self, target):
return f"{self.name} は {target} に攻撃した!"
② 作成した pikori.py
と同じフォルダに別のPythonファイル(例:main.py
)を作成し、import
文で自作モジュールを読み込みます。
■例:main.py
import pikori # 自作モジュール「pikori.py」を読み込む
# 勇者ぴこりのスキルを使う
message = pikori.greet("村人A")
print(message) # 勇者ぴこりは 村人A に元気よく挨拶した!
# 勇者ぴこりのステータスを参照
print(pikori.HP) # 100
# クラスを使って勇者ぴこりを生成
hero = pikori.Hero()
print(hero.attack("スライム")) # ぴこり は スライム に攻撃した!
③ モジュール名が長い場合は as
を使って短くできます。
import pikori as pkr
print(pkr.greet("魔法使い")) # 勇者ぴこりは 魔法使い に元気よく挨拶した!
print(pkr.HP) # 100
hero = pkr.Hero("勇者アルフ")
print(hero.attack("ドラゴン")) # 勇者アルフ は ドラゴン に攻撃した!
④ from
文で必要な関数・変数・クラスだけを直接読み込むこともできます。
from pikori import greet, HP, Hero
print(greet("ドラゴン")) # 勇者ぴこりは ドラゴン に元気よく挨拶した!
print(HP) # 100
hero = Hero("勇者カイン")
print(hero.attack("ゴブリン")) # 勇者カイン は ゴブリン に攻撃した!
自作モジュールをパッケージ化
① パッケージ用のフォルダを作成します。(例:pikori_pkg/
)
② フォルダの中に __init__.py
を作成します。このフォルダは「パッケージ」として認識されます。
(中身は空でもOKですが、ここに初期化処理や公開するモジュールをまとめることもできます)
■フォルダ・ファイル構成
pikori_pkg/
├── __init__.py
③ フォルダの中に複数の .py
ファイル(モジュール)を作成します。
■例:hero.py
# hero.py
class Hero:
def __init__(self, name="ぴこり", hp=100):
self.name = name
self.hp = hp
def attack(self, target):
return f"{self.name} は {target} に攻撃した!"
■例:items.py
# items.py
def potion():
return "回復薬を使った! HPが50回復した!"
■フォルダ・ファイル構成
pikori_pkg/
├── __init__.py
├── hero.py
└── items.py
④ 同じフォルダに main.py
を作り、パッケージを読み込みます。
■例:main.py
# パッケージ全体を読み込む
import pikori_pkg.hero as hero
import pikori_pkg.items as items
# 勇者ぴこりを生成
yusha = hero.Hero()
print(yusha.attack("スライム")) # ぴこり は スライム に攻撃した!
# アイテムを使う
print(items.potion()) # 回復薬を使った! HPが50回復した!
■フォルダ・ファイル構成
pikori_pkg/
├── __init__.py
├── hero.py
├── items.py
└── main.py
⑤ from文で必要なモジュールやクラスだけを直接読み込むこともできます。
from pikori_pkg.hero import Hero
from pikori_pkg.items import potion
yusha = Hero("勇者カイン")
print(yusha.attack("ドラゴン")) # 勇者カイン は ドラゴン に攻撃した!
print(potion()) # 回復薬を使った! HPが50回復した!
練習問題
本ページで学んだ内容を定着させるとともに、「Python 3 エンジニア認定基礎試験」や「基本情報技術者試験」の対策にも役立つ練習問題を用意しましたので、チャレンジしてみてください。
【問題1】importの基本(難易度★☆☆☆☆)
次のうち、標準ライブラリに含まれるモジュール datetime
を使って「現在時刻」を表示する正しい方法を選びなさい。
ヒント:現在時刻を取得するには、datetime
モジュール内の datetime
クラスにある today()
または now()
メソッドを利用する。
A.
from datetime import today
print(today())
B.
import datetime
print(datetime.today())
C.
import datetime
print(datetime.datetime.today())
D.
from datetime import datetime
print(datetime.now())
解説:
・
import datetime
でモジュール全体を読み込んだ場合は、datetime.datetime.today()
のように「モジュール名.クラス名.メソッド名」で呼び出します。・
from datetime import datetime
とすれば、クラスを直接インポートできるので datetime.now()
と書けます。・ B は
datetime.today()
が存在しないためエラー、A は today
を直接インポートできないためエラーになります。【問題2】asによるエイリアス(難易度★☆☆☆☆)
長いモジュール名に短い別名を付ける「正しい書き方」を選びなさい。
A. import datetime to dt
B. import datetime as dt
C. alias datetime as dt
D. from datetime as dt
解説:
as
を使ったエイリアス付けはimport モジュール名 as 別名
です。例えばimport datetime as dt
とすれば、以降dt.datetime.today()
のように短く書けます。NumPyはnp
、matplotlib.pyplotはplt
などの定番エイリアスがよく用いられます。
【問題3】fromによる要素の直接読み込み(難易度★★☆☆☆)
標準ライブラリに含まれるモジュール datetime
の中には、同名のクラス datetime
が定義されています。
このクラスを毎回 datetime.datetime
と書かずに、直接 datetime
という名前で使いたい。適切な書き方はどれか。
A.
from datetime import datetime
B.
import from datetime datetime
C.
from import datetime.datetime
D.
import datetime.datetime as d
解説:
・
from モジュール名 import 要素名
で、指定した要素を直接呼び出せます。・
from datetime import datetime
とすれば、以降は datetime.today()
や datetime.now()
と書けます。・ これは「モジュール datetime の中にあるクラス datetime を直接インポートしている」形です。
・ B, C, D はいずれも構文エラーや誤用になります。
【問題4】モジュール・パッケージ・ライブラリの違い(難易度★★☆☆☆)
それぞれの定義として正しいものを選びなさい。
A. モジュールは複数フォルダの集合、パッケージは1つの.pyファイル
B. モジュールは1つの.pyファイル、パッケージは複数モジュールを含むフォルダ(通常init.pyを含む)、ライブラリは複数のパッケージやモジュールから成る集合
C. モジュールとパッケージは同義、ライブラリは外部提供物のみ
D. パッケージは関数だけの集まり、ライブラリはクラスだけの集まり
解説:モジュール=1つのPythonファイル(
.py
)、パッケージ=複数モジュールを束ねたフォルダ(通常__init__.py
を含む)、ライブラリ=パッケージやモジュールをさらに大きくまとめた集合体、という整理が正しいです。
【問題5】標準ライブラリと外部ライブラリ(難易度★☆☆☆☆)
次の説明のうち、正しいものを選びなさい。
A. 標準ライブラリはpipでインストールしないと使えない
B. 外部ライブラリはPythonに最初から付属している
C. 標準ライブラリはインストール直後から使える。外部ライブラリは必要に応じてpip等でインストールする
D. 標準ライブラリと外部ライブラリは同義である
解説:標準ライブラリはPython本体に付属しており、追加インストールなしで利用可能です。外部ライブラリは
pip install
などでインストールして利用します。例としてdatetime
やcsv
は標準、numpy
やpandas
は外部です。
【問題6】import文の配置(難易度★☆☆☆☆)
import文を記述する位置として、一般的に推奨される場所はどこか。
A. ファイル末尾
B. 各関数内の先頭
C. プログラム(ファイル)の先頭
D. どこでもよく、推奨はない
解説:
import
は一般にプログラム(ファイル)の先頭にまとめて記述します。依存関係を見通しやすくし、読み込みのタイミングも明確になります。
【問題7】定番エイリアス(難易度★☆☆☆☆)
慣例的によく用いられるエイリアスの組み合わせとして正しいものはどれか。
A. import numpy as np
/ import matplotlib.pyplot as plt
B. import numpy as npy
/ import matplotlib.pyplot as map
C. import numpy as num
/ import matplotlib.pyplot as mp
D. import numpy as np
/ import matplotlib as plt
解説:NumPyは
np
、matplotlib.pyplot
はplt
が定番です。エイリアスは可読性向上と入力の簡略化に有効です。
【問題8】パッケージ配下の要素をfromで読み込む(難易度★★☆☆☆)
NumPy パッケージの中には、線形代数を扱うサブモジュール linalg
があり、その中に逆行列を求める関数 inv
が定義されています。この inv
関数を直接呼び出せるようにインポートする正しい方法を選びなさい。
A.
from numpy import inv
B.
from numpy.linalg import inv
C.
import numpy.linalg inv
D.
import numpy.linalg as inv
解説:パッケージ配下のサブモジュールから特定の要素を読み込むときは
from パッケージ.サブモジュール import 要素
です。例:from numpy.linalg import inv
。
【問題9】自作モジュールの読み込み(難易度★★☆☆☆)
同じフォルダにある自作ファイルpikori.py
の関数greet
を使う正しい方法を選びなさい。
A.
import pikori pikori.greet("村人A")
B.
from greet import pikori pikori("村人A")
C.
import greet as pikori greet("村人A")
D.
from pikori import pikori pikori("村人A")
解説:自作モジュールは同じフォルダに置けば
import ファイル名
で読み込めます。関数やクラスはモジュール名.要素名
で呼び出します。例えばimport pikori
後にpikori.greet("村人A")
と使えます。
【問題10】パッケージ認識のための必須ファイル(難易度★★★☆☆)
フォルダを「パッケージ」として認識させるために、通常必要とされるファイルはどれか。
A. setup.py
B. requirements.txt
C. __init__.py
D. MANIFEST.in
解説:フォルダに
__init__.py
を置くことで、そのフォルダはパッケージとして認識され、配下のモジュールをimport
/from
で扱えるようになります。
関連ページ(もっと学びたい人へ)
Pythonの基礎から応用例まで、以下ページから学ぶことができます。

コメント