【Python】モジュールとパッケージ、ライブラリの違いについて解説!

  • 2019年7月6日
  • 2020年4月14日
  • Python

こんにちは!

皆さんはPythonの学習を進めていく中で「モジュール」「パッケージ」「ライブラリ」という言葉を聞いたことはありませんか?

今回の記事では、この3つの違いについて簡単に説明しています。

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

Pythonを学習している方には、これらの3つのどれも、「importするやつ」といった認識はあると思います。

しかし、モジュールとパッケージ、ライブラリの違いを意識したことがある人は少ないかもしれません。

違いを考えずに今まで使っているのかもしれませんが、違いを押さえておくと、Pythonを勉強する上で理解が深まりますよ!

モジュール

モジュールとは

Pythonのモジュールというのは、拡張子「.py」のファイルのことです。

モジュールには関数やクラスが定義されています。

モジュールのインポート

モジュールをインポートする際の書式は以下のようになります。

import モジュール名

例えば、mathモジュールを読み込みたい場合には、

import math

とします。普通ですね!

パッケージ

パッケージとは

Pythonのパッケージとは、同じような機能、動作のモジュールを集めたディレクトリのことです。

パッケージのインポート

パッケージをインポートする際の書式は、モジュールの場合と同様に、

import パッケージ名

のように良いのですが、無駄なモジュールが多くインポートされてしまいます。

インポートするパッケージを絞るには、

import パッケージ名.子ディレクトリ名

とします。少しわかりづらいので具体例を見ていきましょう。

次の画像はsklearnパッケージのディレクトリ構成の一部です。赤の矢印の「cluster」 というパッケージを読み込む場合は、

import sklearn.cluster

とすることによってsklearn内のclusterパッケージのみをインポートすることができます。

また、パッケージ内の1つの関数のみをインポートすることもできます。

例えば、clusterパッケージ内の「KMeans関数」を読み込む場合は、

from sklearn.cluster import KMeans

とすることで、KMeans関数のみを読み込むことができます。

この方法はモジュールでも使用できるので、確認しておきましょう。

ライブラリ

ライブラリとは

Pythonのライブラリに関しては、私が調べた限りでは、具体的な定義はありませんでした。モジュールのことをライブラリと呼んだり、パッケージのことをライブラリと呼んだりと様々な使用法があるみたいです。

私の経験では、規模の大きいパッケージなどがライブラリとよく呼ばれているような気がします。

上の例で出てきた「sklearn」は、パッケージが集まってできたsklearnパッケージという認識なのですが、どちらかというとsklearnライブラリと呼ばれることが多いと感じます。

ライブラリと出てきたら、モジュールやパッケージのことを指してるんだということを覚えておきましょう。

まとめ

今回の記事では、以下の3つの違いについて説明しました。

  • モジュール
     →拡張子「.py」のファイルで、関数やクラスが定義
  • パッケージ
     →モジュールを集めてできたディレクトリ
  • ライブラリ
     →定義は曖昧で、モジュールやパッケージのことを指す

上記の3つは、カタカナで、しかも文字数も同じで覚えにくいですが、ぼんやりとでも覚えておいて、この3つの言葉が出てきたときに混乱しないようにしましょう!