Open6
python-dotenv の使い方

version: python-dotenv 1.1.0

- uv を使ってるので
uv add python-dotenv
でインストール - 開発環境において
.env
ファイルがあるとき、それを環境変数として読み込んで使える
from dotenv import load_dotenv
load_dotenv() # take environment variables
# Code of your application, which uses environment variables (e.g. from `os.environ` or
# `os.getenv`) as if they came from the actual environment.

- デフォルトで
load_dotenv
は既存の環境変数を上書きしない - アプリ立ち上げるときと同じ階層にある
.env
を読み込む - だいたいのアプリは root ディレクトリで立ち上げると思うので、ここに
.env
をおけば良さそう

- Bash と同じように環境変数を使った構文がある
-
${DOMAIN}
みたいに${}
で展開される -
$DOMAIN
は展開されないので注意 -
.env
は.gitignore
に追加する
# Development settings
DOMAIN=example.org
ADMIN_EMAIL=admin@${DOMAIN}
ROOT_URL=${DOMAIN}/app

-
dotenv_values
は環境変数ではなく、.env
の内容を読み込んで、それを dict で返す
from dotenv import dotenv_values
config = dotenv_values(".env") # config = {"USER": "foo", "EMAIL": "foo@example.org"}
- ファイルを読み込んでいるだけなので、複数組み合わせたりできる
import os
from dotenv import dotenv_values
config = {
**dotenv_values(".env.shared"), # load shared development variables
**dotenv_values(".env.secret"), # load sensitive variables
**os.environ, # override loaded values with environment variables
}

- IPython で dotenv を使える
%load_ext dotenv
%dotenv