Python - 名前空間パッケージのインポート(import)
公開日:2019-03-08 更新日:2019-05-29
[Python]
1. 概要
名前空間パッケージのモジュールをインポート(import)します。
2. パッケージにあるモジュールのインポート
モジュール検索パス(sys.path)にパッケージのパスを指定すると、パッケージ名だけでパッケージを指定できるようになります。
また、検索パスに同じパッケージ名があった場合、同じパッケージとして扱われます。
以下のフォルダ構成では、pkg1 が異なるフォルダに1つずつありますが、それぞれモジュール検索パスの対象となっている場合には、同じパッケージとして扱われます。
mod1.py
mod2.py
sys.path.append() でモジュール検索パスの追加を行っています。
これにより、異なるフォルダにある mod1 と mod2 を、pkg1 からインポートできます。
test.py
また、検索パスに同じパッケージ名があった場合、同じパッケージとして扱われます。
以下のフォルダ構成では、pkg1 が異なるフォルダに1つずつありますが、それぞれモジュール検索パスの対象となっている場合には、同じパッケージとして扱われます。
├─ test.py (メイン)
├─ dir1
│ └─ pkg1(名前空間パッケージ)
│ └─ mod1.py(モジュール)
├─ dir2
├─ dir3
├─ pkg1(名前空間パッケージ)
└─ mod2.py(モジュール)
mod1.py
def add(v1, v2):
return v1 + v2;
mod2.py
def multiply(v1, v2):
return v1 * v2;
sys.path.append() でモジュール検索パスの追加を行っています。
これにより、異なるフォルダにある mod1 と mod2 を、pkg1 からインポートできます。
test.py
import sys
sys.path.append("dir1")
sys.path.append("dir2/dir3")
from pkg1 import mod1
from pkg1 import mod2
print( mod1.add(1, 2) )
print( mod2.multiply(3, 4) )