😸

【Python入門】パッケージが何かを初心者視点でまとめてみた

に公開

目的

Pythonにおける「パッケージ」が何を意味するかを理解すること

対象読者

Python初学者
※筆者自身も初学者なので、その視点を活かします。

ポイント

Pythonにおけるパッケージ(Package)とは、関連性の高いモジュール(.pyファイル)をひとまとめにして管理するためのディレクトリ構造のことです。

モジュールを整理するためのフォルダのようなものと言えるでしょう。

パッケージのイメージ


https://plantprogramer.com/package_module/ より画像引用

パッケージの基本的な構造

構造: モジュールと __init__.py

ディレクトリがパッケージとして認識されるためには、そのディレクトリ内に特別なファイル __init__.py が含まれている必要があります。
__init__.py は、そのディレクトリをパッケージとして認識させるための目印であり、初期化処理を記述する場所として機能します。

要素 説明
ディレクトリ(フォルダ) パッケージの名前になる
__init__.py そのディレクトリをPythonのパッケージとして識別させるためのファイル
通常は空で構いませんが、パッケージがインポートされたときに最初に実行される初期化コードを書くこともできる
.py ファイル パッケージ内のモジュール
これらがパッケージの具体的な機能を提供する
my_app/       <-- パッケージ名
├── __init__.py   <-- パッケージ識別子
├── server.py     <-- モジュール
├── client.py     <-- モジュール
└── utils/        <-- サブパッケージ
    ├── __init__.py
    └── helper.py  <-- サブモジュール

パッケージの目的: 名前空間の管理と整理

パッケージの主な目的は、名前空間(Namespace)を階層化して管理することです。

多数のモジュールが存在するとき、それぞれが独立した名前空間を持つことで、異なるパッケージ内の同名の関数やクラスが誤って衝突するのを防ぎます。

(例)my_app.server.start() と my_app.client.start() は明確に区別されます。

また、大規模なプロジェクトで機能や役割(例:rpc、utilsなど)ごとにコードを論理的に整理し、必要な機能だけをインポートできるようにします。

まとめ

  • パッケージ: モジュール(.pyファイル)を整理するためのフォルダのようなもの
  • パッケージを使用することによって、コードを整理でき、再利用性が向上する
  • パッケージは独立した名前空間を提供するため、異なるパッケージ間で同じ名前のクラスや関数を使っても衝突を防ぐことができる

最後までお読みいただき、ありがとうございました。

参考URL

https://zenn.dev/delacroix/articles/e3f62ca001deb0

https://www.tohoho-web.com/python/module.html

https://packaging.python.org/ja/latest/tutorials/packaging-projects/

https://pouhon.net/python-module/2174/

https://plantprogramer.com/package_module/

Discussion