試してみたブログ

AI関連・iPhone/Pixelなどのガジェット・音声入力・サーマルプリンタなど興味をある事をどんどん試してみた際の記録

Pythonの仮想環境・パッケージ管理をuvに変更した

背景

  • なぜvnevが必要か?
    • プロジェクトごとの環境分離、ライブラリやPythonの本体のバージョンの違いの競合を防ぐ

      比較

      項目 venv uv
      環境構築の手軽さ Python標準で追加インストール不要 uv単体で仮想環境もパッケージ管理も対応、作業が一括
      パッケージ管理 pipやpipenvなど uvの高速pip互換(Rust製で高速化)
      速度 標準的(pip準拠) 圧倒的に速い。pipの約10倍、condaの30倍以上
      エコシステムの成熟度 非常に安定・実績豊富 新しいツール、事例は増加中
      ディスク使用量 環境ごとにやや多め 少なめ(軽量設計)
      おすすめ場面 複雑で安定が必要な既存プロジェクト 新規案件や高速サイクル重視の場合

今日のゴール

  • 既存でvenvさせている物をuvに置き換えが終わる
  • PJディレクトリに移動したら自動的に仮想環境がいつものが立ち上がる

やってみた

  • インストール
curl -LsSf https://astral.sh/uv/install.sh | sh
uv --version
uv init
uv python install 3.14
uv venv
brew install direnv
  • シェル設定に追加
eval "$(direnv hook zsh)"
  • プロジェクト配下に .envrcを追加
source .venv/bin/activate

参考

zenn.dev

まとめ

  • uvの存在あまり知らなかったが、とりあえずは理解が進んだ
  • 仮想環境をuvに置換えが完了した
  • 自動で切り替わる所まで出来た