問題提起
Pythonの venv 仮想環境を使って web開発を行っていると以下のように、ターミナルから環境変数にAPI Keyを登録することが多いかと思います。
export API_KEY="2urh932hf0efe43fof742jf..."
しかしこのようにターミナルで設定するやり方は仮想環境の立ち上げのたびに、環境変数の参照が切れてしまう問題がよく発生します。僕は毎回めんどくさいと思いながら設定し直していました...
解決方法
python-dotenv モジュールを使う
以下の手順に従ってpython-dotenv を使って環境変数を設定することでvenv 仮想環境内で環境変数を恒常的に設定することができます。
1 . venv 仮想環境に python-dotenv をインストールします
pip install python-dotenv
2 . プロジェクトのルートディレクトリに .env ファイルを作成します。このファイルに環境変数を定義します
touch .env
3 . .env ファイルを開き、以下の形式で環境変数を定義します
API_KEY="api key をここに指定してください"
4 . 最後に、Python スクリプトからこれらの環境変数をロードするには、load_dotenv 関数を使います
from dotenv import load_dotenv
import os
load_dotenv()
api_key = os.getenv("API_KEY")
まとめ
このように、python-dotenv を使うと、venv 環境を立ち上げるたびに手動で環境変数を設定する必要がなくなります。
また、セキュリティの観点から、パスワードや秘密鍵などの機密情報を含む .env ファイルを共有したり、公開リポジトリにプッシュしたりしないように注意してください。
最後に
特定のファイルをgitのバージョン管理から外す方法については以下の記事で解説しているのでご参照ください。