サイトアイコン 【TechGrowUp】

Python開発入門35 Python-dotenvを使った環境変数管理

はじめに

Pythonで開発を進める際、APIキーやデータベースの接続情報など、機密情報を安全に管理する必要があります。これらの情報をコード内に直接記述すると、セキュリティリスクが高まります。

そこで役立つのが、Python-dotenvというライブラリです。Python-dotenvを使えば、環境変数を.envファイルで管理し、コードの安全性と可読性を向上させることができます。

この記事では、Python-dotenvの基本的な使い方や便利な機能、応用例を詳しく解説します。

Python-dotenvとは

概要

Python-dotenvは、.envファイルに記載された環境変数をPythonスクリプトで簡単に読み取れるようにするためのライブラリです。このライブラリを使うと、以下のような利点があります:

主な機能

  1. 環境変数の読み込み
    .envファイルに記載された変数を自動で読み込み、システム環境変数として設定。
  2. デフォルト値の設定
    必要に応じて環境変数にデフォルト値を指定可能。
  3. 軽量で簡単に使用できる
    シンプルな構文で設定や管理が可能。

Python-dotenvのインストール

Python-dotenvは、PyPIからインストールできます。

pip install python-dotenv

インストール確認:
インストール後、以下のコマンドでバージョンを確認します:

pip show python-dotenv

基本的な使い方

以下は、Python-dotenvを使った基本的な環境変数管理の手順です。

.envファイルの作成

プロジェクトのルートディレクトリに.envファイルを作成し、環境変数を記載します。

例:.envの内容
SECRET_KEY=mysecretkey
DATABASE_URL=postgres://user:password@localhost:5432/mydatabase
DEBUG=True

Pythonコードで環境変数を読み込む

dotenvモジュールを使って.envファイルを読み込みます。

from dotenv import load_dotenv
import os

# .envファイルを読み込む
load_dotenv()

# 環境変数の取得
secret_key = os.getenv("SECRET_KEY")
database_url = os.getenv("DATABASE_URL")
debug_mode = os.getenv("DEBUG")

print(f"SECRET_KEY: {secret_key}")
print(f"DATABASE_URL: {database_url}")
print(f"DEBUG: {debug_mode}")

説明:

デフォルト値の設定

環境変数が見つからない場合のデフォルト値を指定できます。

debug_mode = os.getenv("DEBUG", "False")
print(f"DEBUG: {debug_mode}")

説明:
環境変数DEBUGが未設定の場合、デフォルト値として"False"が返されます。

Python-dotenvの応用例

環境ごとの設定の切り替え

開発、テスト、本番環境ごとに異なる.envファイルを用意し、適切な設定を読み込むことができます。

例:環境に応じた.envファイル
from dotenv import load_dotenv
import os

# 開発環境の.envを読み込む
load_dotenv(".env.development")

環境変数を一括で取得

全ての環境変数を辞書形式で取得することも可能です。

from dotenv import dotenv_values

config = dotenv_values(".env")
print(config)

出力例:

{'SECRET_KEY': 'mysecretkey', 'DATABASE_URL': 'postgres://user:password@localhost:5432/mydatabase', 'DEBUG': 'True'}

コマンドラインツールとの組み合わせ

環境変数を設定してスクリプトを実行することもできます。

dotenv run -- python my_script.py

Python-dotenvを使う際の注意点

  1. .envファイルの管理
    .envファイルは機密情報を含むため、必ず.gitignoreに追加してGitリポジトリに含めないようにしましょう。
.env
  1. 本番環境での使用
    本番環境では、.envファイルではなくシステム環境変数を直接設定する方が安全です。
  2. 依存関係の管理
    Python-dotenvは軽量なライブラリですが、依存関係を整理するためにrequirements.txtに明記することを推奨します。

Python-dotenvの利点と活用法

利点

まとめ

Python-dotenvを活用することで、環境変数の管理が簡単かつ安全になります。この記事で紹介した基本操作や応用例を参考に、プロジェクトでPython-dotenvを導入してみてください。特にAPI開発や複数環境の管理が必要な場面で、その便利さを実感できるでしょう!

モバイルバージョンを終了