[python].envを使って環境変数を外だしする

.env 導入前

# 定数を設定する
END_POINT = "★★★"
API_KEY = "★★★"
DEPLOYMENT_NAME = "★★★"
API_VERSION= "★★★"

.env 導入後

.envファイルから環境変数へインポートしてくれる「python-dotenv」をインストールする

pip install python-dotenv

 

.envファイルを作成する

END_POINT = "★★★"
API_KEY = "★★★"
DEPLOYMENT_NAME = "★★★"
API_VERSION= "★★★"

os.getenvを利用して、環境変数を取得する

# os, load_dotenvの参照を追加
import os
from dotenv import load_dotenv

# 環境変数をロードする
load_dotenv()

# 定数を設定する
END_POINT = os.getenv("END_POINT")
API_KEY = os.getenv("API_KEY")
DEPLOYMENT_NAME = os.getenv("DEPLOYMENT_NAME")
API_VERSION= os.getenv("API_VERSION")

 

質問コーナー

Q.load_dotenv実行後、環境変数に残り続ける?

A. 残り続けない、あくまでもプログラムが実行している間だけ。

Q..envファイルはどこに配置すればいいの?

A.

既定では、既存の環境変数をオーバーライドせず、Python スクリプトと同じディレクトリにあるファイルを検索するか、段階的に上位で検索します。python-dotenv pypi

⇒ プロジェクトのルートフォルダに配置しておけばOK

Q.os.environos.getEnvはどちらを使ったらいいの?

A. 環境変数を動的に変更する必要がないならos.getEnv一択。

 

os.environ

  • 環境変数 keyが存在しない場合、Noneを返却する。
  • 環境変数の取得のみ可能。

os — 雑多なオペレーティングシステムインターフェース — Python 3.13.7 ドキュメント

os.getEnv

  • 環境変数の取得及び変更が可能。

os — 雑多なオペレーティングシステムインターフェース — Python 3.13.7 ドキュメント