はじめに
AIを使ったアプリケーション開発で、APIキーを環境変数に保存することを考えます。
環境変数を特定のプロジェクトのみ有効にする方法として、dotenvやdirenv、autoenvなどがあります。
この記事では、uvとtaskipyで環境変数を設定する方法を紹介します。
※ taskipyは、pyproject.tomlで管理するタスクランナーです。
前提
-
uvがインストールされている -
taskipyがインストールされている - プロジェクトを
pyproject.tomlで管理する - アプリケーションは、
uv runで動かす
taskipyは、uv tool install taskipyでインストールできます。
構築手順
それでは、実際にプロジェクトを構築していきましょう。
1. ファイルの準備
まず、環境変数を定義する.envファイルと、それを読み込むmain.pyファイルを作成します。
API_KEY="your_secret_api_key_here"
import os
api_key = os.getenv("API_KEY")
if api_key:
# 成功!キーの一部を隠して表示
print(f"✅ API Key loaded successfully: {api_key[:11]}...")
else:
# 失敗
print("❌ Error: API_KEY not found.")
2. タスクの設定
次に、pyproject.tomlにtaskipyのタスクを定義します。これにより、.envファイルを読み込むコマンドを簡単に実行できるようになります。
コード スニペット
[project]
name = "my-uv-project"
requires-python = ">=3.11"
version = "0.1.0"
# 以下を追加する
[tool.taskipy.tasks]
run = "uv run --env-file .env"
しくみの説明
pyproject.tomlに下記を追加すると、task new_commandとすることで右辺のコマンドを実行できます。また、task new_commandの後ろに付けた引数は、定義したコマンドの末尾にそのまま追加されます。
[tool.taskipy.tasks]
new_command = (コマンド)
このことから、「プロジェクトの設定」の記述により、task run main.pyとするとuv run --env-file .env main.pyを実行します。
この--env-file .envを付けることで、ファイル.envの環境変数を反映してコードを実行できます。
実行と確認
すべてのファイルが準備できたら、以下のコマンドを実行します。
コマンド
task run main.py
実行結果
✅ API Key loaded successfully: your_secret...
このように表示されれば、main.pyが.envファイルから環境変数を正しく読み込めたことになります。
おわりに
ポイントは「uv run --env-file .envを使えば、.envファイルで環境変数を簡単に管理できる」ということです。
このコマンドを毎回入力するのは手間ですが、taskipyを使うことでtask runのように短いコマンドで実行でき、管理も楽になります。
また、aliasを使う方法もありますが、aliasは個人のPCのシェル設定に依存するため、チームメンバーとの共有が困難です。一方、taskipyの設定はpyproject.tomlに記述されるため、Gitで管理でき、チーム全体で同じ開発体験を簡単に共有できるという大きなメリットがあります。
以上