Pythonで親ディレクトリのファイルをインポートする方法
親ディレクトリ以下のファイルをインポートするには、相対パスを使用できます。
ファイル構成が下記の場合と仮定します。
- project
- main.py
- utils
- helper.py
main.pyでhelper.pyをインポートするには、以下の方法があります。
from utils import helper
相対パスによるインポートも可能
from ..utils import helper
相対パスでのインポートは、以下の条件を満たす場合のみ適切であることに注意してください。
- コードはパッケージ(つまり、__init__.pyという空のファイルを持つフォルダ)内でなければなりません。
- パッケージ内のファイルを直接実行することはできません。他の上位スクリプトから実行する必要があります。
条件を満たさない場合は、上位ディレクトリをsys.pathに追加して、ファイルをインポートすることができます。ただし、この方法はコードの理解、保守が難しくなるのでオススメしません。
import sys
sys.path.append("..")
from utils import helper
上のプロセスで、main.py 中で utils パッケージの helper.py モジュールを正常にインポートできるようになります。