Pythonプロジェクトの秘密を守る!「python-dotenv」で環境変数をスマートに管理

投稿者: | 2026-01-12

こんにちは! 私と一緒にプログラミングの世界を楽しく探求しましょう。
今回は、Python開発でとても役立つライブラリ`python-dotenv`についてご紹介しますね。プロジェクトの設定値やAPIキーなどの機密情報を、安全かつスマートに管理する方法を学んでいきましょう。

Pythonプロジェクトで秘密の情報を安全に管理するのは、とても大切なことなんですよ!

導入

Pythonアプリケーションを開発する際、APIキー、データベースの接続情報、クラウドサービスの認証キーなど、様々な設定値が必要になりますよね。これらの情報を直接コードに書き込んでしまうと、セキュリティ上のリスクがあったり、開発環境と本番環境で値を切り替えたいときに手間がかかったりします。

python-dotenvは、そんな悩みを解決してくれる、とても便利なライブラリなんです。

概要

python-dotenvは、プロジェクトのルートディレクトリに配置された.envファイルから環境変数を読み込み、Pythonのos.environに自動的にロードしてくれるライブラリです。これにより、コードからこれらの設定値にos.getenv()を使って簡単にアクセスできるようになります。

.envファイルはシンプルなテキストファイルで、KEY=VALUEの形式で環境変数を記述します。

メリット

python-dotenvを活用することには、いくつかの大きなメリットがあります。

  • 機密情報の安全な管理: APIキーやパスワードといった機密情報をコード内に直接記述するリスクを避けられます。`.env`ファイルをGitのバージョン管理から除外することで、誤ってGitHubなどの公開リポジトリにアップロードしてしまう事故を防ぐことができます。
  • 環境ごとの設定の容易さ: 開発環境、テスト環境、本番環境など、異なる環境でそれぞれ異なる設定値を使いたい場合に、`.env`ファイルを切り替えるだけで簡単に対応できます。コードを変更する必要がないため、環境構築がスムーズになります。
  • コードの可読性向上と保守性の向上: 設定値がコード本体から分離されるため、コードがすっきりとして可読性が向上します。また、設定値の変更が必要になった場合も、`.env`ファイルを編集するだけで済むため、保守作業が楽になります。

これだけでも使う価値、ありますよね!とても手軽に導入できるのが嬉しいポイントです。

サンプルコード

実際にpython-dotenvを使ってみましょう。

1. ライブラリのインストール

まずはpython-dotenvをインストールします。

pip install python-dotenv

2. `.env`ファイルの作成

プロジェクトのルートディレクトリに.envという名前のファイルを作成し、次のように設定値を記述します。

API_KEY=your_secret_api_key_12345
DATABASE_URL=sqlite:///app.db
DEBUG_MODE=True

3. Pythonスクリプトでの使用

Pythonスクリプト(例: main.py)でload_dotenv()を呼び出し、os.getenv()で環境変数を取得します。

# main.py
import os
from dotenv import load_dotenv

# .envファイルをロード
load_dotenv()

# 環境変数を取得
api_key = os.getenv('API_KEY')
db_url = os.getenv('DATABASE_URL')
debug_mode = os.getenv('DEBUG_MODE', 'False').lower() == 'true' # デフォルト値と型変換も考慮

print(f"API Key: {api_key}")
print(f"Database URL: {db_url}")
print(f"Debug Mode: {debug_mode}")

# 環境変数が設定されていない場合
non_existent_var = os.getenv('NON_EXISTENT_VAR', 'Default Value')
print(f"Non Existent Var: {non_existent_var}")

4. 実行

python main.pyを実行すると、.envファイルから読み込まれた値が表示されるはずです。

python main.py

出力例:

API Key: your_secret_api_key_12345
Database URL: sqlite:///app.db
Debug Mode: True
Non Existent Var: Default Value

みーちゃんのワンポイント

python-dotenvを使う上で一番大切なのは、.env ファイルをGit管理から除外することです。必ず.gitignoreファイルに/.envと記述して、機密情報が意図せず公開されないように注意してくださいね。本番環境ではコンテナ環境変数や専用のシークレット管理サービスを利用するのが一般的ですが、開発・テスト環境ではpython-dotenvがとても手軽で便利ですよ!