Atom+Hydrogen で Python 実行時のカレントディレクトリがおかしかった際の対処
事の発端
Atom+Hydrogen で Python のファイルを実行させたが、同じカレントディレクトリ内のモジュールをインポートできず、
ModuleNotFoundError: No module named '~~'
などとエラーを出した。
検証プロセス
import sys, os
sys.path.append(os.chdir())
と追加してはどうか → 失敗
ModuleNotFoundError: No module named '~~'
などとエラーを出す。
- os.chdir() を使わず以下のように working folder (カレントディレクトリ) のパスを手打ちで入力するのはどうか → 成功
import sys sys.path.append("working folder のパス")
などと書き込めば、うまく動く。
ただし、module を読み込みたいすべてのファイルに追記しなければならず非効率。
- この時、os.chdir() で working folder がきちんと参照されていないことに気づく。
実際、print(os.chdir()) で表示されるのが working folder ではなく、プロジェクトフォルダー内の一番最初のフォルダーになっている。
解決方法
Hydrogen の Settings に Directory to start kernel in という項目があり、そのデフォルトである
The first started project's directory (default)
から
current directory of the file
に変更