Pythonにおける、モジュールとパッケージとライブラリの違いについて解説します。
初心者の方ほど区別を曖昧にしがちですが、実際の現場では用語の意味を正確に理解しておくことが重要です。
Pythonエンジニアを目指す方であれば知らないと恥ずかしい基本知識ですので、是非最後までご覧ください。
モジュールとは?
早速、それぞれの用語の意味を解説していきます。まずは、モジュール(module)から。
「モジュール」は、Pythonのファイル(.py)のことです。

後述しますが、import文を用いて「sample.py」をインポートすることで、「sample.py」に含まれる関数やクラスを利用することができるようになります。

上記のイメージの通り、モジュールとして扱うpyファイルの中には、クラス定義や関数定義などの定義文が中心に記述されています。
(つまり、他のプログラムから利用されることを前提にしたコードが書かれてるということです。)
モジュールと言っても、普通のプログラムファイルなので難しく考えなくてOKです。
パッケージとは?
続いてパッケージについて。
パッケージ(英:Package)とは、モジュールを複数集めたもののことです。
かつ、パッケージは同じフォルダの中に「__init__.py」が存在している点が特徴です。

「__init__.py」には何も記述されていなくてもOK。
特定の機能を開発する際に、モジュールをインポートするだけでは不十分な場合が多くあります。「もっと、豊富な機能があれば、、、。」というお悩みに答えることができるのが、パッケージなのです。
パッケージの中のモジュールは、相互にimportしており機能が豊富に作りこまれています。
パッケージをimportするだけで、簡単に複雑な機能を実現できる場合が多いです。

イメージとしては、モジュールよりも豊富な機能を利用できて、より作りこまれているものがパッケージであると覚えておきましょう。
ライブラリとは?
では、ライブラリとは何でしょうか。
答えは、いくつかのパッケージをまとめたものとなります。
※もしくは、「関数やクラス、モジュールなどの他から呼び出せるものを総称して」ライブラリと呼ぶこともあります。
ライブラリも、他のプログラムにインポートされて利用されることを前提として作成されています。
ライブラリは大きく分けて2種類存在します。1つが、標準ライブラリ。もう1つが、外部ライブラリです。
標準ライブラリ
Pythonをインストールした時点で一緒にインストールされるライブラリです。
例えば、print関数。(これは初心者の方もよく使う関数かと思います。)
これは、標準ライブラリの中で定義されている関数の1つです。
したがって、事前に定義しなくても関数を利用することができます。何気なく利用している関数は大体標準ライブラリの中で定義されています。
外部ライブラリ
外部ライブラリとはその名の通り、標準に付属していないライブラリのことです。
したがって、まずはダウンロードを行い、その後に後述するimport文を利用してインポートしないと利用することができません。
実は、Pythonが近年伸びている背景には、この外部ライブラリが豊富に存在していることが挙げられます。Pythonは、簡単にデータをグラフ化したり、統計をとれるようにしたりすることが可能でAIと親和性が高いと言われますが、それはこの外部ライブラリのおかげなのです。
import文の使い方
最後に、モジュールやパッケージをプログラム内で利用する方法を解説します。
import文:構文ルール
import モジュール名
書き方は非常に簡単です。
import モジュール名 import パッケージ名
複数のモジュールやパッケージをインポートすることも可能です。
import文は、基本的にプログラムの1番初めに記載します。
部分的にインポートする場合
パッケージ全体ではなく、パッケージに含まれる特定のモジュールのみをインポートすることも可能です。
from パッケージ import モジュール
このようにすることで、パッケージの中の一部のモジュールのみをインポートすることができます。
処理をできるだけ軽くしたい場合などに、このようなインポートを行う場合があります。
Pythonを1から学習したい方は
Pythonをより実践的に学びたい―。実際にコーディングをしながら学びたい―。独学に限界を感じている―。
そんな方には、無料体験/オンライン完結もあるプログラミングスクールで学ぶのがおすすめです。都度検索しながら知識を補完していくのではなく、1から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。
各プログラミングスクールの特徴をまとめた記事をこちらに記載しておきますので、是非ご覧ください。