Pythonプロジェクトで環境変数を扱う際、.env
ファイルは非常に便利なツールです。
これにより、重要なAPIキーなどの機密情報をコードから分離し、安全に保つことができます。
今回は、.envをPythonで扱う方法と少しスマートな実装方法について解説します。
.envを使うための3ステップ
python-dotenv
パッケージをインストール- .envファイルの変数を使いたい箇所で
load_dotenv()
を記述 os.get("変数名")
で.envファイルに記述した変数にアクセス
上記がPythonで.envファイルを使うための3ステップになります。
それぞれ以下で簡単に解説します。
Step1: python-dotenvのインストール
まず、必要なパッケージをインストールします。
ターミナルで以下のコマンドを実行してください。
pip install python-dotenv
これで、python-dotenv
パッケージが使えるようになります。
Step2: load_dotenv()を記述
python-dotenv
パッケージのインストールが済んだら、.envファイルに記述した変数を使いたい箇所で以下を記述します。
from dotenv import load_dotenv
load_dotenv()
Step3: os.getenv(“変数名”)で変数へアクセス
load_dotenv()の呼び出しが終わったら、あとは以下のようにして変数にアクセスできます。
from dotenv import load_dotenv
load_dotenv()
# .envにAPI_KEY=xxxxxxxxと設定済み
API_KEY = os.getenv("API_KEY")
以上の3つの手順で、簡単にPythonで.envファイルの変数が扱えるようになります。
APIキーなど公開したくないものは.envに格納して、上記の手順で扱うのがおすすめです。
スマートなやり方:config.pyを使う
上記の手順で問題なく.envファイルの変数にアクセスすることはできます。
ただ、.envファイルにアクセスしたい箇所にload_dotenv()
を記述しないといけず少し面倒です。
なので、個人的にはconfig.pyなどのファイルを作成し、以下のように.envファイル内の変数を全て取り出しておくのがおすすめです。
import os
from dotenv import load_dotenv
load_dotenv()
# .envにそれぞれの変数を設定済み
API_KEY = os.getenv("API_KEY")
API_KEY2 = os.getenv("API_KEY2")
SECRET_KEY = os.getenv("SECRET_KEY")
こうすることで、他のファイルで.envファイル内の変数を使いたい場合に以下のようにすれば良いだけです。
from config import API_KEY2, SECRET_KEY
def setup_api():
api = someAPI(api_key=API_KEY2, secret_key=SECRET_KEY)
config.pyに全て集約されているので、各ファイルでload_dotenv()
を繰り返し呼び出す手間を省くことができます。
つまり、どこでもconfigから変数をインポートできて便利なので、かなりおすすめです。
めちゃくちゃ簡単ですよね。
まとめ
この記事では、Pythonで.env
ファイルを使用して環境変数を管理する方法を紹介しました。
config.py
を作成することで、環境変数の読み込みを一元化し、効率的にプロジェクトを管理できるようになります。
セキュリティを保ちつつ、効率的なコード管理を実現しましょう。