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で.envを使うには、python-dotenvを導入する

0
Posted at

概要

Pythonで開発をしているときに、API KEYを隠すために.envを使うことがあります。しかし久しぶりにやるとやり方を忘れてたりします💦

検証環境は、uvで構築されております。
ライブラリの追加もuvに合わせて導入しております。

普段は、Node.jsの方が触るのが多くて。。。
あっちなら思い出すが、こっちだと???
Viteだと書き方変わってきますが!

uvで管理する場合は、uv.lockを使用するのでpipと仕組みが違う。

  1. 再現性の欠如: uv.lock が更新されないため、チーム開発で環境を完全再現できなくなる。
  2. プロジェクト管理の不整合: pyproject.toml に依存関係が記録されず、構成管理が形骸化する。
  3. Project APIとの衝突: uv add 等のモダンな管理機能と混ぜると、依存関係の競合を招く。
  4. 推奨ワークフローからの逸脱: 公式は uv add(追加)と uv sync(同期)による管理を推奨している。
  5. 使い分けの原則: uv pip は既存の requirements.txt を扱う「低レイヤの互換モード」と割り切るべき。

導入のやり方

通常なら、pip installします。

pip install python-dotenv

私は最近は、uvなるものを使っているのでコマンドが違います。uvでpythonのバージョン管理ができまして、プロジェクト作るとライブラリの追加のコマンドも違ったりしますので注意が必要です。

uv add python-dotenv

.envファイルをまずは作成しましょう。環境変数には何かテキストを追加。

.env
MY_NAME=John

main.pyにモジュールを呼び出すソースコードを記述。これで.envから環境変数を読み込むことできます。

main.py
from dotenv import load_dotenv
import os

load_dotenv()  # Loads .env by default
my_name = os.getenv('MY_NAME')
print(f"MY_NAME: {my_name}")

実行結果

uv run main.py 
MY_NAME: John

最後に

Pythonで.envを読み込むには、python-dotenvが必要ですのでこちらを追加しましょう。しばらく触っていないとやり方を忘れてしまうので、必要最小限のソースコードで動作確認する手順を記事にしました。人の参考にしてもうまくいかず💦

公式のリファレンスを読むのが良いなと思いました。設定が正しければcopy & pasteしても動きますので。

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?