パッケージを作成
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