この記事で解決すること
「環境変数って何?」「.envファイルって何のためにあるの?」
プログラミングを始めると必ず出会う「環境変数」を、ゼロから解説します。
環境変数とは
環境変数は、PCやアプリに「設定値」を渡すための仕組みです。
たとえば:
- APIキー(外部サービスにアクセスするための鍵)
- データベースの接続先
- 開発モードか本番モードかの切り替え
これらをコードに直接書くと、GitHubに上げたときに全世界に公開されてしまいます。環境変数を使えば、コードと設定値を分離できます。
なぜ環境変数が必要なのか
NG:コードに直接書く
api_key = "sk-abc123xyz456" # これがGitHubに公開される!
OK:環境変数から読み込む
import os
api_key = os.environ.get("API_KEY") # コードにキーが含まれない
.envファイルの使い方
ステップ1:.envファイルを作る
プロジェクトのルートフォルダに .env というファイルを作ります。
API_KEY=sk-abc123xyz456
DATABASE_URL=postgresql://localhost:5432/mydb
DEBUG=true
ルールは簡単です。変数名=値 の形で1行ずつ書くだけ。
ステップ2:.envファイルを読み込む
Pythonの場合、python-dotenv というライブラリを使います。
pip install python-dotenv
from dotenv import load_dotenv
import os
load_dotenv() # .envファイルを読み込む
api_key = os.environ.get("API_KEY")
print(api_key) # sk-abc123xyz456
Node.jsの場合は dotenv パッケージを使います。
npm install dotenv
require('dotenv').config();
const apiKey = process.env.API_KEY;
console.log(apiKey); // sk-abc123xyz456
ステップ3:.gitignoreに追加する(超重要)
.env ファイルをGitHubに上げないように、.gitignore に追加します。
.env
これを忘れると、APIキーが全世界に公開されます。
よくある間違い
.envファイルにスペースを入れる
# NG
API_KEY = sk-abc123xyz456
# OK
API_KEY=sk-abc123xyz456
= の前後にスペースを入れるとエラーになることがあります。
.envファイルをクォートで囲む
# 基本的にクォートは不要
API_KEY=sk-abc123xyz456
# クォートが必要なケース(値にスペースが含まれる場合)
MESSAGE="Hello World"
.gitignoreに追加し忘れる
一度GitHubに上げてしまったら、履歴に残ります。.env を削除しても、過去のコミットから見られてしまいます。
もし間違えて上げてしまったら、すぐにAPIキーを再発行してください。
まとめ
- 環境変数は「コードと設定値を分離する」仕組み
.envファイルに変数名=値で書く.gitignoreに.envを追加するのを絶対に忘れない- APIキーやパスワードは絶対にコードに直接書かない
関連リソース
プログラミングをもっと学びたい方へ:
リンク