PUROGU LADESU

ポエムがメインのブログです。

速習Python:パッケージ

パッケージを作成

my_package の中の utils.py
(v3.3以降は__init__.pyは必須でない)

def sample1_func():
    print("this is sample 1 func")

def sample2_func():
    print("this is sample 2 func")
パッケージのインポート

フルパスでパッケージ名を明示するか、
fromを使ってパッケージを省略する。
asで別名をつけるをわかりにくくなる恐れがある。

import my_package.utils
from my_package import utils

my_package.utils.sample1_func()
utils.sample1_func()

importの*はinit.pyのallで定義されたもののみ読み込む
__all__ = ['utils', 'tool']
*でのimportは推奨されない

ImportError

バージョンによって読み込むものを変えたい場合など

try:
   from xxx1 import utils
except ImportError:
   from xxx2 import utils
setup.pyでパッケージ化

setup.py を作成しsdistを実行すると、tar.gzファイルが出来上がり配布できる

from distutils.core import setup

  • setuptools

多機能
find_packageでpythonファイルを見つける
install_requiresで必要なライブラリをインストールできる

  • distutils

指定したものをパッケージ化
※これはもう非推奨となるのでsetuptoolsを使いましょう
python setup.py sdist
tar zxvf xxxx.tar.gz

  • インストール

tar zxvf xxxxxx
cd xxxxxx
sudo python setup.py install