【Python】import・as・from文の使い方

Pythonのimport・as・from文でモジュール(ライブラリ)を読み込む方法について入門者向けにソースコード付きでまとめました。

モジュール、パッケージ、ライブラリの違い

Pythonにおける「モジュール」「パッケージ」「ライブラリ」は、コードを整理・再利用するための単位ですが、それぞれの範囲(スコープ)が異なります。

プログラミングにおける「スコープ」とは、変数や関数がどこから見えて、どこで使えるかという“有効範囲”のことです。RPGで例えるなら「城の中でしか使えない鍵」と「世界中どこでも使える鍵」のように、範囲が違うイメージです。モジュール・パッケージ・ライブラリも、それぞれの「まとまりの範囲」が違うと考えると理解しやすいです。

用語 定義 スコープのイメージ
モジュール 1つのPythonファイル(.py ファイル内で定義されたものをまとめた最小単位 math.py(数学関数をまとめたモジュール)
パッケージ 複数のモジュールをまとめたフォルダ(__init__.py を含む)
パッケージの中に含まれるモジュールを「サブモジュール」といいます
モジュールを束ねて「1つのグループ」として扱える numpy パッケージ(内部に多くのモジュールを含む)
ライブラリ 複数のパッケージやモジュールをまとめた集合体 「パッケージ」や「モジュール」をさらに大きくまとめたもの NumPy(数値計算ライブラリ)、scikit-learn(機械学習ライブラリ)

モジュール → パッケージ → ライブラリ の順に、スコープが広がっていきます。

RPGで例えると…

モジュール = 1人のキャラクター(剣士や魔法使い)
パッケージ = パーティ(複数のキャラが集まった冒険チーム)
ライブラリ = ギルド(いろんなパーティが所属する大きな組織)

といったイメージです。

【Python】モジュール、パッケージ、ライブラリの違いとは?標準ライブラリと外部ライブラリとは?
Pythonにおけるモジュール、パッケージ、ライブラリの違いについてまとめました。

「標準ライブラリ」と「外部ライブラリ」

Pythonのライブラリは大きく分けて「標準ライブラリ」と「外部ライブラリ」の2種類があります。

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

標準ライブラリはPythonをインストールした瞬間から使えるのに対して、外部ライブラリは必要に応じて追加インストールする必要があります。

【Python】モジュール、パッケージ、ライブラリの違いとは?標準ライブラリと外部ライブラリとは?
Pythonにおけるモジュール、パッケージ、ライブラリの違いについてまとめました。

モジュール・ライブラリの読み込み(import文)

Pythonでは、import 文を使って モジュールやライブラリを読み込み ます。
これにより、他のファイルに定義された関数やクラスを自分のプログラム内で利用できるようになります。

書式

import モジュール名

import 文は プログラムの先頭 に書き、指定したモジュールやライブラリを読み込みます。
– のが一般的です。

サンプルコード

以下は、Pythonの標準ライブラリに含まれているdatetime モジュールを読み込んで現在時刻を表示する例です。

import datetime

today = datetime.datetime.today()
print(today)
2025-09-23 15:59:16.402167

モジュールやパッケージ名のエイリアス(as文)

import 文に as を付けると、モジュールやパッケージ名に好きな省略名(エイリアス) をつけられます。
特にモジュールやパッケージ名が長い場合、短い名前にするとコードが読みやすくなります。

書式

import  モジュール名 または パッケージ名 as 好きな名前

サンプルコード

以下は、 標準ライブラリのdatetime モジュールに dt というエイリアスを付ける例です。

import datetime as dt

today = dt.datetime.today()
print(today)
2025-09-23 15:59:16.402167

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)
2025-09-23 15:59:16.402167

ここでは 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())

正解:C または D
解説:
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


正解:B
解説: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

正解:A
解説:
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. パッケージは関数だけの集まり、ライブラリはクラスだけの集まり


正解:B
解説:モジュール=1つのPythonファイル(.py)、パッケージ=複数モジュールを束ねたフォルダ(通常__init__.pyを含む)、ライブラリ=パッケージやモジュールをさらに大きくまとめた集合体、という整理が正しいです。

【問題5】標準ライブラリと外部ライブラリ(難易度★☆☆☆☆)

次の説明のうち、正しいものを選びなさい。

A. 標準ライブラリはpipでインストールしないと使えない
B. 外部ライブラリはPythonに最初から付属している
C. 標準ライブラリはインストール直後から使える。外部ライブラリは必要に応じてpip等でインストールする
D. 標準ライブラリと外部ライブラリは同義である


正解:C
解説:標準ライブラリはPython本体に付属しており、追加インストールなしで利用可能です。外部ライブラリはpip installなどでインストールして利用します。例としてdatetimecsvは標準、numpypandasは外部です。

【問題6】import文の配置(難易度★☆☆☆☆)

import文を記述する位置として、一般的に推奨される場所はどこか。

A. ファイル末尾
B. 各関数内の先頭
C. プログラム(ファイル)の先頭
D. どこでもよく、推奨はない


正解:C
解説:importは一般にプログラム(ファイル)の先頭にまとめて記述します。依存関係を見通しやすくし、読み込みのタイミングも明確になります。

【問題7】定番エイリアス(難易度★☆☆☆☆)

慣例的によく用いられるエイリアスの組み合わせとして正しいものはどれか。

A. import numpy as npimport matplotlib.pyplot as plt
B. import numpy as npyimport matplotlib.pyplot as map
C. import numpy as numimport matplotlib.pyplot as mp
D. import numpy as npimport matplotlib as plt


正解:A
解説:NumPyはnpmatplotlib.pyplotpltが定番です。エイリアスは可読性向上と入力の簡略化に有効です。

【問題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

正解:B
解説:パッケージ配下のサブモジュールから特定の要素を読み込むときは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")  

正解:A
解説:自作モジュールは同じフォルダに置けばimport ファイル名で読み込めます。関数やクラスはモジュール名.要素名で呼び出します。例えばimport pikori後にpikori.greet("村人A")と使えます。

【問題10】パッケージ認識のための必須ファイル(難易度★★★☆☆)

フォルダを「パッケージ」として認識させるために、通常必要とされるファイルはどれか。

A. setup.py
B. requirements.txt
C. __init__.py
D. MANIFEST.in


正解:C
解説:フォルダに__init__.pyを置くことで、そのフォルダはパッケージとして認識され、配下のモジュールをimportfromで扱えるようになります。

関連ページ(もっと学びたい人へ)

Pythonの基礎から応用例まで、以下ページから学ぶことができます。

【Python超入門】基礎から応用例まで幅広く解説
PythonについてPythonは、統計処理や機械学習、ディープラーニングといった数値計算分野を中心に幅広い用途で利用されているプログラミング言語です。他のプログラミング言語と比較して「コードが短くて読みやすい、書きやすい」「ライブラリが豊...
この記事を書いた人
西住技研

プログラミング言語「Python」を研究、仕事、趣味でデータ分析や作業自動化などに活用してきたノウハウを情報発信しています。
筆者の詳しいプロフィールやお問合せはこちらのページまで。
YoutubeX(旧Twitter)でも情報発信中です!

西住技研をフォローする
Python基礎

コメント