pythonメモ:import時のpathとカレントディレクトリ

ディレクトリにある自作モジュールをimportし、そのモジュールが同フォルダの自作モジュールをimportする場合

 

ディレクトリ構成

main.py

mymodules

      |
     +--- module1.py

      |
     +--- module2.py

 

最初の呼び出し元で 

#main.py
import sys
sys.path.append('mymodules')

のようにpathを追加しておくと、呼び出し先でも追加したpathが引き継がれている(というか最初のスクリプト実行時の環境のまま、モジュールの処理を挟み込んでるだけか)のでそのままimportできる。

#module1.py
import module2

なお呼び出した別ディレクトリのモジュール内の処理でも、カレントディレクトリは呼び出し元のまま変わらない。

 

また、 import先のグローバルで定義した変数は呼び出し元では使えない