さっしーブログ

埼玉県在住のシステムエンジニアです。基本的には技術的な内容を中心に発信していきます。

Python入門 pythonプログラムをパッケージ化してみよう

f:id:y_saiki:20171024233602j:plain

目次

1.環境

  • Debian7.11
  • Python2.7.3

2.パッケージ化とは

パッケージ化を行うことで関連するモジュール群でグルーピングできプログラムのメンテナンス性が高まる、 また同じモジュール名同士の競合を回避することができる。

3.pythonでパッケージ化を行うための準備

pythonでパッケージ化を行うには、まずはパッケージとなるディレクトリを作成します。

筆者はサンプルとして以下のディレクトリ構造を作成しました。

python
  |- com
        |- py
             |- sample

このpythonフォルダは作業フォルダなので、com配下のディレクトリ毎にinit.pyという空のファイルを作成していきます。
init.pyを作成する理由はそのディレクトリをパッケージであるとpythonに認識させるためです。

python
  |- com
        |- __init__.py
        |- py
             |- __init__.py
             |- sample
                    |- __init__.py

4.パッケージ化するモジュールを作成しよう

今回はサンプルとして以下のモジュールを用意しました。

test.py

#_*_ coding: utf-8 _*_

class Test:

  @staticmethod
  def add(arg1, arg2):
      return arg1 + arg2

このファイルを下記の場所に配置します。

python
  |- com
        |- __init__.py
        |- py
             |- __init__.py
             |- sample
                     |- __init__.py
                     |- test.py

5.パッケージ化したモジュールを読み込んでみよう

以下のスクリプトファイルを用意します。
配置する場所はpythonフォルダ直下に配置します。

main.py

#_*_ coding: utf-8 _*_

from com.py.sample.test import Test

上記のようにfromの後ろにドット区切りでinit.pyを配置したフォルダを上位からインポート対象のモジュールファイルまで記載していきます。

6.実際に読み込んだパッケージを使ってみよう

では、main.pyに以下の1行を追加して実行してみましょう。

6-1.サンプルコード

main.py

#_*_ coding: utf-8 _*_

from com.py.sample.test import Test

#=== 追加 ===
print str(Test.add(1, 2))

6-2.実行結果

root@dev:~/tmp/python# python main.py
3

以上