Pythonを触り始めようとすると、インストールに時間が掛かる等、なかなか手を出しにくいと思います。
そこで便利なのが uv です。
uv は、Python本体の管理、仮想環境の作成、ライブラリの追加などを、1つのツールでまとめて扱いやすくしたものです。
また、非常に高速です。
この記事では、まず次の3つに絞って書きます。
-
uvとは何か - Windowsでの
uvのインストール方法 - 仮想環境の作成方法
uvとは何か?
公式サイトでは、uv は「高速なPythonのパッケージ・プロジェクト管理ツール」と説明されています。
かなりざっくり言うと、uv は次の役割をまとめて扱いやすくしたツールです。
- Pythonのバージョン管理
- 仮想環境の作成
- ライブラリのインストール
- プロジェクトごとの依存関係の管理
なぜ uv が便利なのか
初心者のうちは、道具が多いだけで混乱しやすいです。
たとえば昔ながらのやり方だと、次のように役割が分かれがちでした。
- Python本体を入れる
-
pipでライブラリを入れる - 必要なら別ツールでPythonのバージョンを切り替える
uv だと、この流れをかなりシンプルにできます。
- 覚えるコマンドが減る
- 動作が速い
- Python本体まで
uvで管理できる
「まず1つの道具で整理して覚えたい」という人に向いています。
最初に知っておくと楽な考え方
Python開発では、最低限この3つを分けて考えると整理しやすいです。
1. Python本体
python.exe のことです。
まず、Pythonそのものがないとプログラムは動きません。
2. 仮想環境
プロジェクトごとに使う、専用のPython環境です。
同じPCの中でも、プロジェクトAとプロジェクトBで別々のライブラリ構成にできます。
3. ライブラリ
matplotlib や numpy のような追加パッケージです。
これは仮想環境の中に入れて使うことが多いです。
この3つがごちゃごちゃになると、Python学習の序盤でかなり迷いやすいです。
uv は、この整理をしやすくしてくれます。
Windowsでuvをインストールする
Windows では、公式の PowerShell インストーラーを使うのが分かりやすいです。
これは PowerShell で実行してもよいですし、コマンドプロンプトから実行しても大丈夫です。
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
インストール後に、次で確認します。
uv --version
uv --version や、このあと出てくる uv init、uv sync、uv add などの uv コマンドは、PowerShell とコマンドプロンプトで同じです。
そのため、普段使っている方で進めれば大丈夫です。
補足
インストール直後に uv --version が通らない場合は、ターミナルを開き直すと解決することがあります。
これは、PATH の更新が現在のターミナルにまだ反映されていないためです。
仮想環境とは何か?
仮想環境は、プロジェクト専用のPython環境です。
全部をPC全体にそのまま入れると、新しいライブラリを使いたいプロジェクトと、過去に作ったプログラムを動かすために古いライブラリを使いたいプロジェクトがぶつかることがあります。
そこで、プロジェクトごとに環境を分けます。
なぜ仮想環境を作るのか
- プロジェクトごとに必要なライブラリを分離できる
- 別プロジェクトとの衝突を防げる
- 「このプロジェクトで何を使っているか」を管理しやすい
Pythonでは、仮想環境はほぼ必須の考え方だと思ってよいです。
仮想環境のメリット・デメリット
ここは、初心者が一番ひっかかりやすいところだと思います。
実際、「面倒だから使わなくてもよいのでは?」と言いたくなる気持ちはかなり分かります。
メリット
- プロジェクトごとにライブラリを分けられる
- 別の案件で入れたライブラリが干渉しにくい
- PCを買い替えたときに環境を作り直しやすい
- 作ったプログラムを他の人に渡しやすい
- 不要になったら仮想環境ごと削除しやすい
特に大きいのは、「再現しやすい」ことです。
今のPCでたまたま動いている状態ではなく、「別のPCでも同じように動かしやすい状態」を作れます。
デメリット
- 最初は仕組みが少し分かりにくい
- 仮想環境を作るひと手間が増える
-
uv runなど、覚えることが少し増える - フォルダの中に
.venvなどの管理対象が増える
つまり、短期的には少し面倒です。
ここは正直に書いた方がよいと思っています。
それでも仮想環境を使う理由
仮想環境は、「今この瞬間の楽さ」より「後で困らないこと」に効きます。
最初の1回だけ見ると、公式インストーラーでPythonを入れて、そのまま pip install して使う方が楽に見えます。
実際、ちょっとした確認用スクリプトなら、それでも動いてしまいます。
ただし、その楽さは「今のPCの中だけでたまたま成立している」ことが多いです。
開発を続けるほど、あとから困りやすくなります。
仮想環境を使わないと何が困るのか
たとえば、こんな流れはよくあります。
- Python公式インストーラーでPythonを入れる
- 必要になったら
pip install requestsのようにPC全体へ入れる - 別の案件でも同じPythonをそのまま使う
このやり方は、最初は楽です。
でも、次のような場面で困りやすいです。
1. PCを交換したとき
前のPCで何を入れていたか、意外と覚えていません。
- どのPythonバージョンだったか
- どのライブラリを入れたか
- ライブラリのバージョンはいくつだったか
これが曖昧だと、新しいPCで同じ環境を再現しにくいです。
2. 他の人にプログラムを渡すとき
ソースコードだけ渡しても、相手のPCに同じライブラリが入っていなければ動きません。
さらに厄介なのは、「自分のPCでは動くのに、相手のPCでは動かない」という状態です。
これは、相手が悪いのではなく、環境情報がきちんと残っていないことが原因な場合が多いです。
3. 別のプロジェクトとぶつかるとき
あるプロジェクトでは古いライブラリが必要で、別のプロジェクトでは新しいライブラリが必要、ということは普通にあります。
PC全体にまとめて入れていると、どこかで整合性が崩れやすくなります。
「仮想環境まで、作らなくても良いのでは?」
自分は、この考え方を完全に否定する必要はないと思っています。
たしかに、次のような用途なら仮想環境なしでも動かせます。
- 1回だけ試す数行のスクリプト
- 学習用の一時的なサンプル
- 他人に渡さない個人メモ用コード
ただし、それを普段の開発まで広げると危険です。
言い換えると、仮想環境を使わない方法は「今すぐ動かす」には楽です。
でも、仮想環境を使う方法は「あとで困らない」ために楽になります。
この違いが大きいです。
仮想環境は、面倒なルールではなく「そのプロジェクト専用の作業箱」を作るイメージです。
- 作業箱が分かれているから混ざらない
- 箱ごと作り直せる
- 箱の中身を他の人に説明しやすい
これなら、PCを替えても、他の人に渡しても、比較的同じ状態を作りやすくなります。
uv init で仮想環境込みのプロジェクトを作る
uv init でプロジェクトごと作る流れで覚える方が分かりやすいです。
プログラム開発したいフォルダでプロンプトを開き、以下を実行します。
以下の uv コマンドは、PowerShell とコマンドプロンプトのどちらでも同じです。
uv init
uv sync
これで、プロジェクトのひな形が作られ、必要な環境がそろいます。
uv sync を実行すると、通常は .venv というフォルダが作成されます。
なぜこの流れが分かりやすいのか
- プロジェクト作成と環境作成をまとめて考えられる
-
pyproject.tomlなどの必要ファイルも一緒にそろう - 後からライブラリ管理へつなげやすい
「仮想環境だけを先に作る」より、「このプロジェクト用の箱を作る」と考えた方が理解しやすいと思います。
.venv とは何か
.venv は、仮想環境を保存するフォルダ名としてよく使われます。
この env は environment の略で、venv は virtual environment を短く書いたものです。
つまり .venv は、「このフォルダは仮想環境ですよ」と分かる定番の名前です。
ツール側もこの名前を前提に扱いやすいことが多いです。
Pythonがまだ入っていない場合は?
uv は、必要に応じてPythonを自動でダウンロードできます。
つまり、環境によっては先に手動でPythonを入れていなくても uv init や uv sync の流れで進められることがあります。
ここは uv の分かりやすい点の1つです。
「まずPython本体をどこから入れるか」でつまずきにくくなります。
VS Codeを使う場合
VS Code を使っている場合、ワークスペース内の .venv をPython環境として見つけやすく、使う環境として選びやすいです。
そのため、初心者のうちは手動の有効化コマンドを細かく覚えなくても、まずは .venv をプロジェクト内に作る運用で十分です。
ターミナルで実行するときも、uv run を使えば仮想環境を意識しすぎずに進めやすくなります。
ここまでのまとめ
今回のポイントは次のとおりです。
-
uvはPython管理まわりをまとめて扱いやすくするツール - Windowsでは 公式PowerShellインストーラーで導入できる
-
uvの基本コマンドは PowerShell とコマンドプロンプトで同じように使える - 仮想環境は、プロジェクトごとにライブラリを分けるために作る
-
uv initとuv syncで、プロジェクトと仮想環境をまとめて整えられる
参考
- uv公式ドキュメント: https://docs.astral.sh/uv/
- Installation: https://docs.astral.sh/uv/getting-started/installation/
- Installing Python: https://docs.astral.sh/uv/guides/install-python/
- Python公式
venvドキュメント: https://docs.python.org/ja/3/library/venv.html
補足
この記事は生成AIを活用して作成しました。