Pythonで親ディレクトリのファイルをインポートする方法

親ディレクトリ以下のファイルをインポートするには、相対パスを使用できます。

ファイル構成が下記の場合と仮定します。

- project
- main.py
- utils
- helper.py

main.pyでhelper.pyをインポートするには、以下の方法があります。

from utils import helper

相対パスによるインポートも可能

from ..utils import helper

相対パスでのインポートは、以下の条件を満たす場合のみ適切であることに注意してください。

  1. コードはパッケージ(つまり、__init__.pyという空のファイルを持つフォルダ)内でなければなりません。
  2. パッケージ内のファイルを直接実行することはできません。他の上位スクリプトから実行する必要があります。

条件を満たさない場合は、上位ディレクトリをsys.pathに追加して、ファイルをインポートすることができます。ただし、この方法はコードの理解、保守が難しくなるのでオススメしません。

import sys
sys.path.append("..")
from utils import helper

上のプロセスで、main.py 中で utils パッケージの helper.py モジュールを正常にインポートできるようになります。

bannerAds