モジュールのパッケージ化

Pythonでは自ら作成したモジュールなどをパッケージ化することができます。パッケージ化によって、モジュールの整理や名前の衝突が避けられるようになりますので是非とも覚えておきましょう。

パッケージの基礎

Pythonでモジュールのインポートを行う場合はsysモジュールのpath内に記述されているパスにフォルダやファイルが無くてはなりません。デフォルトで設定されるパス以外の場所にモジュールを配置したい場合は、インポートを実行する前にパスを追加しておきましょう。今回はc:/python配下にcom.pythonizmを用意し、calcモジュールを作成します。フォルダ・ファイルの構成は次の通りです。

  • c:
    • python
      • com
        • pythonizm
          • calc.py

Python 3.2以前では

3.2以前のバージョンでは、これだけではパッケージであると認識してくれませんので、__init__.pyというファイル名で初期化ファイルを用意し、それぞれのフォルダへ配置します。__init__.pyファイルの中身は空で構いません。
※Python 3.3以降では__init__.pyは必要ありません。

  • c:
    • python
      • __init__.py
      • com
        • __init__.py
        • pythonizm
          • __init__.py
          • calc.py

次は実際にインポートを行ってみましょう。

モジュールのインポート

今回インポートを行うcalcモジュールのコードは下記の通りとなります。c:/python/com/pythonizmへ配置してください。

def plus_value(value_1, value_2):
    return(value_1 + value_2)

続いてモジュールのインポートを行いplus_value関数を呼び出すコードを記載します。

import sys

sys.path.append('c:/python')

import com.pythonizm.calc
print(com.pythonizm.calc.plusValue(1, 1))

3行目で検索パスの追加を行っており、これでそのパスをインタプリタが探してくれるようになります。5行目はパッケージ内に配置されているモジュールのインポートです。「 . 」をセパレータとして使用し、対象のモジュールのインポートを行っています。そして6行目でモジュール内のplus_value関数を呼び出し、結果を取得・表示しています。

2