Pythonでimportのパスを追加するスニペット
例えば、
- modules/
- hoge/
- __init__.py
- ...
- hoge/
- bin/
- run.py
のような配置にした時、run.pyからmodulesディレクトリ内のモジュールを参照するには、importのためのパスを追加するのがよさそうです。importの際にはsys.path
リストにあるパスを元に探索されるので、そこにパスを追加します。
import os import sys def appendImportPath(path, base=None): if base: p = os.path.abspath( os.path.join( os.path.abspath( os.path.dirname(base) ), path ) ) else: p = path sys.path.append(p)
こんな感じの関数を用意しておけば、appendImportPath("../modules", __file__)
といった感じで、パスを追加できます。