🐙

【#環境構築04】uv vs pip vs poetry 比較表、uvでのプロジェクトの始め方

に公開

⚡ uv 単体でプロジェクトを始めるテンプレート

以下は、uv を単体で使って Python プロジェクトを始めるためのミニマルなテンプレートです。


📁 ディレクトリ構成(例)

myproject/
├── .venv/                   ← uv で作成する仮想環境
├── main.py                 ← 実装ファイル
├── requirements.txt        ← 開発に必要なパッケージ
└── requirements.txt.lock   ← 固定された依存バージョン

🔧 初期化手順

# プロジェクトディレクトリを作成
mkdir myproject && cd myproject

# 仮想環境の作成(.venv を作成)
uv venv .venv

# 仮想環境を有効化
source .venv/bin/activate  # Windowsなら .venv\Scripts\activate

# パッケージのインストール(高速!)
uv pip install pandas matplotlib

# 依存を freeze(通常の pip freeze と同じ)
uv pip freeze > requirements.txt

# lockファイルも作成(再現性のため)
uv pip compile -o requirements.txt.lock

🧪 使用時

source .venv/bin/activate
python main.py

📊 uv vs pip vs poetry 比較表

機能・特徴 pip uv poetry
仮想環境作成 venv 手動 uv venv ✅ 自動または in-project
パッケージインストール速度 やや遅い 🚀 非常に高速 標準だと遅め(uv併用で速い)
requirements.txt 対応 ✅ 完全対応 ✅ 完全互換 ❌ 非推奨(pyproject.toml 管理)
pyproject.toml 対応 ❌(予定あり) ✅ 中心に使う
依存解決 最小限(flat) ✅ 厳密・高速 ✅ 厳密
lock ファイルの自動生成 .lock 生成可 poetry.lock 自動生成
CLI 操作の直感性 シンプル pip と同じ 独自構文だが一貫性あり
Jupyter カーネル登録対応 ✅ 手動で可能 ✅(pip互換) ✅(venvで可能)
ビルド / PyPI 公開 ✅ 対応
おすすめ用途 軽量なスクリプト 高速な開発全般 パッケージ開発 / 研究プロジェクト

✅ 結論

  • 🔹 pip:シンプルだが非再現的。環境構築が面倒
  • 🔹 uv高速 + pip互換。小規模プロジェクトや試作に最適
  • 🔹 poetry完全な依存管理と公開も視野に入れた開発向け

🚀 Poetry + uv の組み合わせで快適さとスピードを両立するのもおすすめ!

Discussion