モジュールとパッケージは、Pythonにおいてプログラムの構成要素を管理するために用いられます。本記事では、モジュールとパッケージの基本的な概念、利用方法、作成方法について説明します。

モジュールとは

モジュールとは、Pythonの最小単位のコード群のことを指します。モジュールには関数、クラス、定数などの要素を定義することができ、プログラムの構造を整理するために利用されます。

Pythonでは、モジュールはファイル単位で管理されます。例えば、次のようなsample.pyというファイルに複数の関数を定義することができます。

# sample.py def func1(): print('Hello, World!') def func2(): print('Goodbye, World!')

モジュールを利用する際には、import文を用いて読み込みます。以下のように、sampleモジュールを読み込んで、その中に定義されている関数を呼び出すことができます。

import sample sample.func1() # 'Hello, World!'と表示される sample.func2() # 'Goodbye, World!'と表示される

パッケージとは

パッケージとは、複数のモジュールを一つのまとまりとして管理するための仕組みです。パッケージは、複数のモジュールをディレクトリ単位で管理することができます。例えば、次のような構成のパッケージを作成することができます。

mypkg/ |-- __init__.py |-- module1.py |-- module2.py `-- subpkg/ |-- __init__.py |-- module3.py `-- module4.py

この例では、mypkgという名前のパッケージがあり、その中にmodule1.pyとmodule2.pyという2つのモジュールが存在し、またsubpkgという名前のサブパッケージが存在し、その中にmodule3.pyとmodule4.pyという2つのモジュールが存在します。__init__.pyファイルは、Pythonにおいてパッケージを扱うために必要なファイルで、このファイルが存在することによってディレクトリがパッケージであることを示します。

パッケージを利用する際には、import文を用いて、パッケージやモジュールを読み込むことができます。例えば、次のように、mypkgに含まれるmodule1を読み込み、その中に定義されている関数を呼び出すことができます。

from mypkg import module1 module1.func1() # 'Hello, World!'と表示される

また、サブパッケージのモジュールも同様に読み込むことができます。

from mypkg.subpkg import module3 module3.func1() # 'Hello, World!'と表示される

モジュールとパッケージの作成

モジュールを作成する場合は、任意の名前でファイルを作成し、その中に関数やクラスなどの要素を定義します。例えば、前述したsample.pyファイルを作成する場合は、次のように記述します。

# sample.py def func1(): print('Hello, World!') def func2(): print('Goodbye, World!')

パッケージを作成する場合は、任意の名前でディレクトリを作成し、その中に__init__.pyファイルを作成します。また、パッケージに含まれるモジュールは、ディレクトリの中に任意の名前でファイルを作成し、その中に関数やクラスなどの要素を定義します。例えば、前述したmypkgの例を実現するためには、次のようにファイルを作成します。

mypkg/ |-- __init__.py |-- module1.py |-- module2.py `-- subpkg/ |-- __init__.py |-- module3.py `-- module4.py

init.pyファイルは、空のファイルでも構いません。以下のように定義することもできます。

# mypkg/__init__.py

以上が、モジュールとパッケージの基本的な概念、利用方法、作成方法についての解説です。Pythonのプログラムを作成する際には、モジュールやパッケージをうまく活用して、コードを整理し、見やすく保守しやすいプログラムを作成することを目指しましょう。

リンク

Modules and packages[EN]