今回も小ネタです。Pythonを勉強していると必ず遭遇する、モジュール・パッケージ・ライブラリという言葉達についてです。
blogや書籍などで何度も目にしていて、何となく意味がわかるけど、その違いがよくわからない、という状態だったので、一度整理してみます。
モジュール
モジュールは拡張子が「.py」のファイルのことです。このファイルのファイル名がモジュール名になります。利用するときには、モジュールをimport文により呼び出せます。呼び出したモジュールの中のクラス・関数や変数を利用することができます。
自作の関数などを集めたモジュールへのパスの通し方は次の記事が参考になりました。
パッケージ
次はパッケージです。いつもすっきりしなかったのですが、複数のモジュールをディレクトリ(フォルダ)に入れて整理したものがパッケージだそうです。
機能が類似する有益な「モジュール」がいくつかあると、それらを、まとめて扱った方が便利な場合があります。そんなとき、それらのモジュールを同じディレクトリ(フォルダ)に入れ、そのディレクトリに __init__.py という名称のファイルを入れると、1つのパッケージとして扱うことができます。なお、モジュールが入ったディレクトリの名前がパッケージ名になります。(複数のディレクトリをまとめることもできます。)
https://snowtree-injune.com/2019/07/01/word-a0046-48-module-package-library/
「import パッケージ名」とすることで、パッケージに含まれるモジュールを全て読み込むことができます。
ライブラリ
「ライブラリ」は、Pythonの機能を拡張する部品、と書いてあるものもありますが、厳密な定義は見つけられませんでした。一般には、ライブラリは他のプログラムから呼び出すことを前提に作成された汎用的なプログラムのことのようです。パッケージをいくつか集めてインストールできるようにしたもの、と説明しているものもありました。
まとめ
モジュール・パッケージについてはすっきりした気がします。ライブラリに関しては、まだもやっとした部分が残りますが、いずれも便利な部品を集めたものですね。ジュールを自作するようになると、インポート名をどうするか、機能をまとめるにはどうするか、というときに定義を知っておく必要があります。ただ、学習の初期段階では、モジュール<パッケージ<ライブラリのようなイメージで、あまりこだわらなくてもよいかもしれませんね。
コメント