Atom+Hydrogen で Python 実行時のカレントディレクトリがおかしかった際の対処

事の発端

Atom+Hydrogen で Python のファイルを実行させたが、同じカレントディレクトリ内のモジュールをインポートできず、

ModuleNotFoundError: No module named '~~'

などとエラーを出した。

検証プロセス

  • Python で直接動かすとうまくいくのか → 成功
  • Atom+Hydrogen に戻り、ファイルに
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

に変更