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のパスを追加できるのでインポートすることができる。