🐙
【#環境構築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