Python♪用語集:モジュール、パッケージ、ライブラリの違い

「モジュール」「パッケージ」「ライブラリ」「標準ライブラリ」「外部ライブラリ」という用語は、Pythonの解説書などでも頻繁に出てきます。文の前後からなんとなく意味は分かるけれど明確には説明できない。そんな時には、一度、その違いを整理してみませんか。

0.Python♪ モヤモヤを解消する明快な用語集

「Python♪モヤモヤを解消する明快な用語集」の用語集Top(索引)はこちらです。

モヤモヤを解消する明快な用語集を目指します。例えば言葉の定義が「グレー」なものは「グレー」であると解説します。なお、同じ言葉でも、例えば「Python」と「Java」では定義が違うことがあります。 その場合、「python」での定義を解説します。

1.解説する用語

「モジュール」「パッケージ」「ライブラリ」「標準ライブラリ」「外部ライブラリ」

2.モジュール

モジュールとは、Python のコードを記述した、拡張子が「.py」のファイルのことです。そして、このファイルのファイル名がモジュール名になります。

そして、モジュールをimport文により呼び出せば、呼び出したモジュールの中のクラスや関数や変数を利用することができます。

なお、 別のモジュールから呼び出すことを目的として、便利な関数やクラスが集められたファイルもモジュールでが、単にprint('hello, world')を実行するだけの使い捨てファイルもモジュールです。

[a0048]

3.パッケージ

複数のモジュールをディレクトリ(フォルダ)に入れて整理し、ひとまとまりにしたものがパッケージです。

機能が類似する有益な「モジュール」がいくつかあると、それらを、まとめて扱った方が便利な場合があります。

そんなとき、それらのモジュールを同じディレクトリ(フォルダ)に入れ、そのディレクトリに __init__.py という名称のファイルを入れると、1つのパッケージとして扱うことができます。なお、モジュールが入ったディレクトリの名前がパッケージ名になります。(複数のディレクトリをまとめることもできます。)

「import パッケージ名」とすることで、パッケージに含まれるモジュールを全て読み込むことができます。

以下のコードは2次関数のグラフを表示するコードですが、matplotlibがパッケージ、pyplotがモジュール、plotやshowが関数です。つまり、matplotlibという名称のディレクトリ(フォルダ)のなかに、pyplot.pyというファイルがあり、pyplot.pyというファイルにplot関数やshow関数が具体的に記述されています。

#コード01
import matplotlib
x = [-3, -2, -1, 0, 1, 2, 3]
y = [9, 4, 1, 0, 1, 4, 9]
matplotlib.pyplot.plot(x, y, marker='.')
matplotlib.pyplot.show()

[a0047]

4.「ライブラリ」「標準ライブラリ」「外部ライブラリ」

以下、「ライブラリ」、「標準ライブラリ」、「外部ライブラリ」について説明します。

(1) ライブラリ

実は、「ライブラリ」の定義は厳密ではありません。一般には、ライブラリは他のプログラムから呼び出すことを前提に作成された汎用的なプログラムのことです。

ですから、単にprint('hello, world')を実行するだけのモジュールはライブラリではありません。

Pythonでは、ライブラリが特定の「モジュール」のことを指すこともありますが、「パッケージ」 「モジュール」 「関数」 などを広く含めてライブラリと呼ぶこともあります。

(2) 標準ライブラリ

Pythonの「標準ライブラリ」は、標準で用意された「パッケージ」「モジュール」「関数」「定数」などのことをいいます。importする必要のない「組み込み関数」「組み込み型」「組み込み定数」「組み込み例外」だけではなく、importにより使用可能になる「math」「random」なども「標準ライブラリ」に含まれます。

(3) 外部ライブラリ

「外部ライブラリ」は、標準では用意されていない 「パッケージ」 「モジュール」 「関数」 などのことをいい、機械学習で用いられる「TensorFlow(テンソルフロー)」などは、外部ライブラリーのひとつです。外部ライブラリは、importだけでは使用できず、インストール作業が必要です。

[a0046]

5.参考記事

基本:簡単なfor文とrandom関数を使ってグラフを表示しよう
基本:importで読み込むのはパッケージ?モジュール?関数?

私が実際に購入した教材のご紹介

以下、私が実際に購入したPythonの教材をまとめてみました。 Pythonを学習する上で、少しでもお役に立つことができればうれしいです。

Python♪私が購入したPythonの書籍のレビュー
UdemyのPythonの動画講座を書籍を買う感覚で購入してみた

その他

Twitterへのリンクです。SNSもはじめました♪

液晶ペンタブレットを買いました
 (1) モバイルディスプレイを買うつもりだったのに激安ペンタブレット購入

以下、私が光回線を導入した時の記事一覧です。
 (1) 2020年「光回線は値段で選ぶ」では後悔する ←宅内工事の状況も説明しています。
 (2) NURO光の開通までWiFiルーターを格安レンタルできる
 (3) NURO光の屋外工事の状況をご紹介。その日に開通!
 (4) 光回線開通!実測するとNURO光はやっぱり速かった
 (5) ネット上のNURO光紹介特典は個人情報がもれないの?