パッケージインポート

Python のパッケージインポートについてメモ。

パッケージインポートとは?

ディレクトリパスを指定してインポートを行う機能のこと。
モジュールサーチパスに指定するディレクトリが減らせたりできる。

__init__.py

インポート対象ディレクトリに必要なファイル。
初回インポート時にロードされる。

インポートしてみる1

まずテスト用のディレクトリとファイルを作成する。
構成は以下のようにする。

  
a.py  
mod/b.py  
mod/__init__.py  

インポートしてみる2

mod ディレクトリを作成し、中に b.py ファイルを作成。

  
$ mkdir mod  
$ vi mod/b.py  

  
#!/usr/bin/env python  
# -*- coding: utf8 -*-  
# b.py  
def show_test():  
        print "in b.show_test()"  
  
print "in b.py"  

続けて init.py を作成。

  
$ vi mod/__init__.py  

  
#!/usr/bin/env python  
# -*- coding: utf8 -*-  
# __init__.py  
print "in __init__.py"  

a.py ファイルを作成。

  
$ vi a.py  

  
#!/usr/bin/env python  
# -*- coding: utf8 -*-  
# a.py  
import mod.b as b  
  
if __name__ == "__main__":  
        b.show_test()  

実行してみる

  
$ chmod +x a.py  
$ ./a.py  
in __init__.py  
in b.py  
in b.show_test()  

雑感

知らなくても支障はないけど、知ってると便利。