3
4

More than 3 years have passed since last update.

[Python] 複数階層の自作モジュールの読み込み

Posted at

前提

以下のような構造の時の __init__.py の書き方メモ。


root/
 ├ __init__.py
 ├ dir_a/
 │  ├ __init__.py
 │  └ test_a.py (func_aが定義されている)
 └ dir_b/
    ├ __init__.py
    └ test_b.py (func_bが定義されている)


import root をしたら、root.func_a で呼び出せるようにしたい。ということがあったので、これを実現します。

root直下のinit

root/__init__.py については

root/__init__.py
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from root.dir_a import *
from root.dir_b import *

dir_aのinit

root/dir_a/__init__.py については

root/dir_a/__init__.py
from dir_a.test_a import *

dir_bのinit

root/dir_b/__init__.pyroot/dir_a/__init__.py と同様にして

root/dir_b/__init__.py
from dir_b.test_b import *

まとめ

やっていることは順次呼び出しているだけです。パスがやっかいですね。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4