要点
やりたいこと
Jupyter環境下で、.envファイルの内容を、環境変数として、できるだけシンプルなコードでロードしたい。
実現方法
1.python-dotenv
のインストール
# pipやpipenvなどお好みのツールで
pipenv install python-dotenv
2.ディレクトリ内に.envファイルを設置
.txt
#.envの例
DATA_ROOT=./data
3.Notebook内で、.envを読み込み、環境変数としてロードする
.ipynb
%load_ext dotenv
%dotenv
#環境変数として読み出し
DATA_ROOT = os.environ.get('DATA_ROOT')
背景など
Git等を用いて、他人とコードを共有しつつ作業を進める場合、API_KEY
といった秘密にすべき情報やPATH
のような自身の環境依存的な情報は、共通リポジトリには含めるべきでないとされています。そのやり方の一つとして、このような情報をまとめて.env
ファイルに記述し、.gitignore
で.env
を指定してバージョンコントロールから除外するやり方があります。
.env
に記述された変数情報は、例えばpipenvを使用している場合、仮想環境の構築と同時に環境変数として自動でロードされます。しかし、Jupyter実行時には.env
の変数情報は自動ではロードされません。今回は、python-dotenv
というPackageを用いることで、Jupyter実行環境中に.env
の情報をできるだけシンプルなコードでロードしました。