0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python dot-env 覚書

Last updated at Posted at 2025-04-26

dot-envの目的・機能

「os.getenv()の機能(範囲)を拡張するためにdot-envを使う」

  • プロジェクトに配置した「.envファイル」をロード
  • ロードした.envの内容を、os.getenv() から取得可能

実際の使い方

  1. インストール
  2. .envファイルの用意
  3. 使い方
  4. 動作

インストール

pip install python-dotenv

.envファイルの用意

メモ帳などで、プロジェクト内に.envファイルを作成し「KEY=値」を書き込む。
以下のイメージ

.env
KEY="value"
USER_NAME="username"
PASSWORD="password"

ちなみに、ターミナル上で $ echo "KEY=value" >> .env とすると .envファイルに追記できる。
※誤って 「>>」 でなく 「>」 とすると、記述済み内容をすべて消して最後に送信した "KEY=value" だけが記録されるので注意(>>:append、>:output(上書き)というイメージ)。

使い方

  • import は、from dotenv import load_dotenv
  • load_dotenv(file_path) で.envの内容を環境変数として認識
  • os.getenv() メソッドで、.envの内容にアクセス可能

何らかのトークン(TOKEN="asfdhjk...")を.envに記載し、プログラムから取得したい場合。

from pathlib import Path
import os
from dotenv import load_dotenv

env_file = Path(__file__).resolve().parent / ".env"

load_dotenv(path)
token =  os.getenv("TOKEN")

動作

私は最初に認識を誤っていたので、記載しておく。
■誤認識■ :load_dotenv()の戻り値からインスタンスを取得して、load_dotenvインスタンスから.env内容を取得する、という操作をするのかと予想していたが、これは誤り。

■正解■:load_dotenv()により、環境変数に.envの内容が登録される → os.getenv()からの呼び出しが可能になる

なお、OS(システム)の環境変数を変更するわけではなく、プロジェクト内で一時的に登録してくれるだけらしい。
グローバルな環境は汚さないので、不安がる必要はない模様(コードを書けば書くほど、システムの環境変数が大量になる、といったことはない)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?