読者です 読者をやめる 読者になる 読者になる

Python - 別ディレクトリにあるファイルのインポート

python

インポートの基本構文とファイル

構文は次のようになります。

import {.pyを除いたファイル名}
#import hogehoge_file

ファイルの探索順序

インポート対象ファイルの探索は次の順序で行われます。

  1. 実行中のファイルと同じフォルダ
  2. カレントフォルダ
  3. 環境変数「PYTHONPATH」に列挙したフォルダ
  4. sys.pathに登録してあるフォルダ

参考:Pythonのモジュールインポートのしくみ — PythonMatrixJp

探索範囲を拡張する

このままでは上記以外のパスにあるファイルをインポートできません。
これを解決するには、探索範囲に指定ディレクトリを追加する必要があります。

rubyでいう $LOAD_PATH.push('/path/to/dir')、
phpでいう set_include_path('/path/to/dir')のようなものだと思います。

pythonの場合は sys.path.append('/path/to/dir')という処理で追加できます。
なお、sysを使うためにsys自体をimportする必要があります。

import sys
sys.path.append('/path/to/dir')

参考:CMLog :: Pythonのちょっと高度なimport

別ディレクトリのファイルをインポートする

上記拡張にて、対象ディレクトリを探索範囲に加えます。
環境ごとのパスを取得できるように、osモジュールを利用すると良さそうです。

import sys,os
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../another')