diadia

興味があることをやってみる。自分のメモを残しておきます。

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