python:自作モジュールのインポートについて
自作モジュール内でインポートをするのに困ったので解決方法をメモしておく。
そもそもimportするには?
ディレクトリ以下にあるファイルをインポートすることができる。
MY_DIR----- myscript.py
L--- myconfig.py
L--- init.py
カレントディレクトリがMY_DIRにある時、myscript.py,myconfig.py,init.py内の変数や関数をfrom myscript import var みたいにインポートできる。カレントディレクトリ以下にないpyファイルをインポートする場合はインポートするパスを追加することで対応できる。
具体的には
パスに追加する方法はsys.path.append(パス)で追加できる。
+-----B_DIR------ function.py
| L--- settings.py
A_DIR
|
+--- MY_DIR----- myscript.py
L--- myconfig.py
L--- init.py
例えばfunction.pyの関数をmyscript.py内に呼び出す際には
myscript.pyにて
import os, sys
sys.sppend(os.path.join(os.path.dirname(os.path.dirname(__file__)),"B_DIR"))
from function import func
こうすればB_DIRのパスを追加できるのでインポートすることができる。