uvとは?
uvはRustで作られた超高速なpython環境を一元管理できるオールインワンツール
・超高速
・仮想環境・依存関係・Python本体のバージョン管理も可能
・pip, venvなどの機能をまとめてカバー
uvの特徴や使い方を簡単にお伝えします。
venv+pipなどで環境作っている方は是非uvの速度を体験してみて下さい
https://docs.astral.sh/uv/

興味を持ったきっかけ
X(旧Twitter)にて「uvすごい」というワードを頻繁に見かけるようになり、実際に触ってどうすごいのか確かめてみたいと思ったのがきっかけです。
パッケージ管理のイメージ
- PCにpythonをインストールしますが、プロジェクトごとに使用するパッケージが異なるため、venvなどの仮想環境を使用してプロジェクトごとにpythonパッケージを管理したくなります
- uvでは仮想環境・依存関係・Python本体のバージョンをまとめてプロジェクト単位で管理できます
uvをinstall
windowsの場合はpowershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
macOS linuxの場合
curl -LsSf https://astral.sh/uv/install.sh | sh
プロジェクトを作成
-
プロジェクト作成
- フォルダごと作成
uv init [プロジェクト名] - もしくはプロジェクトフォルダを作ってからその中で実行
mkdir [プロジェクト名] cd [プロジェクト名] uv init - バージョン指定は
-p 3.13uv init [プロジェクト名] -p 3.13
- フォルダごと作成
-
.python-version
-
pyproject.toml
- Pythonプロジェクトの設定を一元管理するためのファイルで、PEP 518で標準化されています(https://packaging.python.org/en/latest/guides/writing-pyproject-toml/)
- ここにはプロジェクトのメタデータ(名前やバージョン、説明など)を記載します
-
main.py
自動生成されたmain.pyを実行してみます
-
uv run main.pyで実行します -
uvはvenv(pythonの標準機能)で仮想環境を自動的に作ってくれます
-
uv.lock
-
uv run main.pyを実行すると自動でvenv環境で実行されます。venvで煩わしい.venv/Scripts/activateやdeactivateの必要がありません。
依存関係(パッケージ)をインストール
-
uv add [パッケージ名]でインストールします(pip install [パッケージ名]の代わり) -
バージョン指定でインストールするとバージョンが
>=ではなく==で記載されます
他開発メンバが構築するとき
- gitでソースコード(.venv以外)を共有して
uv syncを実行すると、開発者の環境にも.venvが作成され、簡単に環境を共有することができます
既存のpip + venv環境からの移行
-
既存環境のプロジェクトフォルダでpythonバージョンを指定してuvプロジェクトを作成します
uv init -p 3.13.2
-
既存のパッケージをuvに追加します
uv add -r requirements.txt
-
必要に応じてpyproject.tomlのnameやversion、description、readme.mdを編集します

-
自動生成されたmain.pyは不要であれば削除します
パッケージインストール時の注意点
-
uv pip install [パッケージ名]でも.venv下にインストールできますが、pyproject.tomlやuv.lockに反映されずプロジェクト管理対象にならないため注意が必要です。

-
上記の状態で
uv syncを実行すると.venvからrequestsモジュールが削除されてしまいます(=pyproject.toml + uv.lockがマスタ)

デメリットは?(注意点)
-
uv addなどの独自コマンドを少し覚える必要があります - 歴史が浅い(2024年2月ごろ~、最新v0.9.9/2025.11.12release)
- (他のライブラリもそうですが)破壊的な改変が入るリスクがあるかもしれません
- パッケージによってはインストールに工夫が必要な場合もあるようです
まとめ
uvはPython環境管理の面倒を一掃します。
-
メリット:
- 超高速
- venv activate不要
- 依存関係管理がスマート
-
デメリット:
- 歴史が浅い(2024年~)
- 一部パッケージで工夫が必要な場合がありそうです
X(旧Twitter)にて「uvすごい」というワードを頻繁に見かけるようになったのがきっかけで、実際に触りってみました。
使ってみると、確かに超高速でその上とても使いやすかったため今は試験的にプロジェクトにも組み込んで運用しています。
まだ使ったことがない方はぜひ試してみてください
番外編
複数のPythonをインストール(プロジェクトを作ると自動でやってくれるのであまり意識する必要はありません)
-
最新pythonインストール:
-
バージョン指定インストール:
uv python install 3.13
-
使用可能なpythonバージョンとインストール済みのpythonが表示されます
-
python実行
あらためて確認する自分のpython環境
これまで自分のPCではpyenvやpylancherなどpython管理するライブラリをたくさん使ってきました。現在どうなっているか整理するために、改めて自分の環境を確認してみました。
-
Apps > Install apps
pythonが3バージョンインストールされていてPython Lancherがはいっている。
(Python Lancherは、Python 3.3以降をwindowsインストール時に自動的にインストールされるようです)

-
システムが参照してるPythonは?(Python --version)
環境変数の先頭のpython310が参照されている

-
Python Lancherの状況は?(py --list)
3.12がcurrent設定されており、uvでインストールしたpython3.13.5も認識されている





















