こんにちは、「Python 環境がまた壊れた...」を何度も経験してきたやまぱんです 😅
補足コメントや質問、いいね、拡散、ぜひお願いします 🥺!
間違っていたら 優しく 教えてください!
Contents
こんな経験ありませんか?
- 「pip install したら別のパッケージが動かなくなった」
- 「Python のバージョンがいつの間にか変わってた」
- 「VS Code が謎の Python を参照してる」
- 「仮想環境を作ったはずなのにグローバルに入ってしまった」
- 「新しい PC にしたら環境構築で 1 日溶けた」
私も全部経験しました。 Windows の Python 環境は本当に壊れやすい。
でも今、ついに 決定版 と呼べるツールが成熟しました。それが uv です。
(2024 年 2 月にリリースされ、2025 年には v0.9 に到達。活発に開発が続いています)
TL;DR(先に結論)
- 2025 年、Windows で Python 環境を作るなら
uv一択 - pip より 10 ~ 100 倍速く(公式ドキュメントより)、venv も pyenv も不要
- 5 分で完了する Python 環境構築
- VS Code / GitHub Copilot との完璧な連携
- 環境が壊れにくい(これが一番大事!)
なぜ Windows の Python 環境は壊れるのか?
そもそも、なぜ Windows の Python 環境は壊れやすいのでしょうか?
原因 1: 複数の Python が混在する
Windows では Python が 複数の場所 にインストールされがちです:
- Python 公式インストーラー →
C:\Python312\ - Microsoft Store 版 →
%LOCALAPPDATA%\Microsoft\WindowsApps\ - Anaconda →
C:\Users\xxx\anaconda3\ - VS Code が自動インストール → 別の場所
どの Python が使われるかは PATH の順番次第。これが混乱の元です。
原因 2: グローバルインストールの罠
pip install を仮想環境なしで実行すると、グローバル環境にインストールされます。
プロジェクト A で numpy 1.x が必要、プロジェクト B で numpy 2.x が必要...という状況で衝突が起きます。
原因 3: venv の管理が面倒
「仮想環境を使えばいい」のは分かっていても:
- 毎回
python -m venv .venvを打つのが面倒 - Activate を忘れてグローバルに入れてしまう
- どの Python バージョンで作ったか分からなくなる
uv はこれらの問題を すべて解決します。
uv とは?
uv は、Rust 製の超高速 Python パッケージマネージャーです。Ruff(Python リンター)を開発した Astral 社が 2024 年にリリースしました。
従来ツールとの比較
| ツール | 役割 | uv で代替 |
|---|---|---|
pip |
パッケージ管理 | ✅ uv pip / uv add |
venv |
仮想環境作成 | ✅ uv venv |
pip-tools |
依存関係ロック | ✅ uv lock |
pyenv |
Python バージョン管理 | ✅ uv python install |
つまり、uv だけで全部できる!
速度比較
公式ドキュメントでは 「10-100x faster than pip」 と記載されています。
実際の速度はパッケージやキャッシュ状態によって異なりますが、体感でも明らかに速いです。詳細なベンチマークは uv 公式ベンチマーク を参照してください。
💡 ポイント: キャッシュが効いている状態(Warm Installation)では特に高速です。初回インストール(Cold Installation)でも pip より数倍速いです。
WSL ではダメなの?
「Windows で Python 環境が壊れるなら、WSL(Windows Subsystem for Linux)を使えばいいのでは?」
これは正論です。実際、WSL は素晴らしい選択肢です。ただし、ユースケースによって最適解が異なります。
WSL が向いているケース
- Linux 専用のツールを使いたい(Docker、シェルスクリプトなど)
- 本番環境が Linux なので開発環境も揃えたい
- macOS / Linux 向けのチュートリアルをそのまま試したい
ネイティブ Windows + uv が向いているケース
- Windows アプリとの連携が必要(Excel、PowerPoint、Outlook 等)
- GUI アプリを開発したい(tkinter、PyQt など)
- ファイルシステムのパフォーマンスを重視(WSL はクロスマウントが遅い)
- VS Code + GitHub Copilot をシンプルに使いたい
- WSL のセットアップや管理が面倒
比較表
| 観点 | WSL + Python | Windows + uv |
|---|---|---|
| セットアップ | やや複雑 | 簡単(5 分) |
| Linux ツールとの互換性 | ◎ 完璧 | △ 一部制限あり |
| Windows アプリ連携 | △ 難しい | ◎ ネイティブ |
| ファイル I/O 速度 | △ クロスマウント遅 | ◎ ネイティブ速度 |
| VS Code 連携 | ○ Remote-WSL 必要 | ◎ そのまま使える |
| GitHub Copilot | ○ 動く | ◎ 設定不要で動く |
| ディスク容量 | △ 追加で数 GB | ◎ 最小限 |
| 学習コスト | △ Linux 知識必要 | ◎ PowerShell のみ |
私の結論
「Windows で完結する開発なら uv、Linux 依存があるなら WSL」 がベストプラクティスです。
特に GitHub Copilot を使った開発 では、ネイティブ Windows + uv の方がシンプルに動作します。WSL だと Remote-WSL 拡張の設定やパスの問題でハマることがあります。
💡 両方使う選択肢もアリ: メインは Windows + uv で開発し、Linux 依存のツールだけ WSL で動かす、というハイブリッド運用も可能です。
セットアップ手順
前提条件
- Windows 10 / 11
- PowerShell(標準で入ってる)
- VS Code(推奨)
ステップ 1: uv をインストール
PowerShell を開いて以下を実行:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
インストール完了後、ターミナルを再起動してください。
⚠️ 重要: uv のインストーラーは PATH を自動で追加しますが、既存のターミナルには反映されません。必ず新しいターミナルを開くか、以下を実行してください:
# 現在のセッションに PATH を追加
$env:Path = "C:\Users\$env:USERNAME\.local\bin;$env:Path"
確認:
uv --version
# uv 0.9.18 (0cee76417 2025-12-16) のように表示されれば OK
ステップ 2: Python をインストール
uv 経由で Python をインストール(pyenv 不要!):
uv python install 3.12
確認:
uv run python --version
# Python 3.12.12
💡 ポイント:
uv python installでインストールした Python は%APPDATA%\uv\python\(例:C:\Users\<ユーザー名>\AppData\Roaming\uv\python\)に保存され、uv run経由でどこからでも使えます。
ステップ 3: プロジェクト用の仮想環境を作成
プロジェクトフォルダに移動して仮想環境を作成:
cd D:\your-project
uv venv --python 3.12
これで .venv フォルダが作成されます。
ステップ 4: パッケージをインストール
# uv pip を使う方法(pip 互換、シンプルに使いたい場合)
uv pip install requests pandas numpy
# uv add を使う方法(プロジェクト管理したい場合)
# ⚠️ uv add を使うには先に uv init でプロジェクトを初期化する必要があります
uv init
uv add requests pandas numpy
💡 uv pip と uv add の違い:
uv pip install: pip と同じ感覚で使える。シンプルなスクリプト向きuv add:pyproject.tomlとuv.lockで依存関係を管理。チーム開発やパッケージ公開向き
VS Code との連携
グローバル設定(全ワークスペース共通)
.venv がないフォルダでも Python が正しく動くように、VS Code のグローバル設定に uv でインストールした Python を登録しておくのがおすすめです。
Ctrl+Shift+P→ "Preferences: Open User Settings (JSON)" を開く- 以下を追加:
{
"python.defaultInterpreterPath": "C:\\Users\\<ユーザー名>\\.local\\bin\\python3.12.exe"
}
💡 なぜ必要?: この設定がないと、VS Code や GitHub Copilot が Microsoft Store の Python スタブを参照してしまい、正しく動作しないことがあります。
プロジェクト固有の設定(推奨)
プロジェクトごとに依存パッケージを分離したい場合は、.venv を作成してワークスペース設定に登録:
cd D:\your-project
uv venv --python 3.12
.vscode/settings.json に追加:
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/Scripts/python.exe"
}
💡 優先順位: ワークスペース設定(
.vscode/settings.json)はグローバル設定より優先されます。.venvがあるプロジェクトではそちらが使われ、ないプロジェクトではグローバル設定の Python が使われます。
GitHub Copilot との連携
上記設定をすれば、GitHub Copilot(Agent モード含む)も正しい Python インタープリターを使用します。特別な設定は不要です!
確認方法
- VS Code をリロード(
Ctrl+Shift+P→ "Reload Window") - 左下のステータスバーに
Python 3.12.12と表示されれば OK .venvがあるプロジェクトでは('.venv': venv)も表示される
日常的な使い方
スクリプトを実行する
# 方法1: uv run を使う(仮想環境を意識しなくていい)
uv run python script.py
# 方法2: 仮想環境を有効化してから実行
.\.venv\Scripts\Activate.ps1
python script.py
パッケージを追加する
# シンプルにパッケージをインストールしたい場合
uv pip install <パッケージ名>
# プロジェクト管理(pyproject.toml)を使う場合
# ⚠️ uv add を使うには先に uv init でプロジェクトを初期化する必要があります
uv add <パッケージ名>
別のプロジェクトで使う
cd D:\another-project
uv venv --python 3.12
uv pip install -r requirements.txt # 既存の requirements.txt がある場合
Windows Terminal でも python を使う(PowerShell プロファイル設定)
VS Code 外(Windows Terminal など)でも python コマンドを使いたい場合は、PowerShell プロファイルにエイリアスを設定します。
プロファイルを編集
# プロファイルを開く
notepad $PROFILE
以下を追加
# uv Python alias
Set-Alias -Name python -Value "C:\Users\<ユーザー名>\.local\bin\python3.12.exe" -Scope Global
Set-Alias -Name python3 -Value "C:\Users\<ユーザー名>\.local\bin\python3.12.exe" -Scope Global
# uv 自体を PATH に追加(ターミナル再起動なしで使えるようにする)
$env:Path = "C:\Users\$env:USERNAME\.local\bin;$env:Path"
⚠️ 注意: uv では
pipコマンドの代わりにuv pipを使います。pip3.12.exeのような単体の pip 実行ファイルは作成されません。⚠️ 注意:
<ユーザー名>は自分のユーザー名に置き換えてください。
反映
# 現在のセッションに反映
. $PROFILE
# または新しいターミナルを開く
これで Windows Terminal からも python が使えるようになります!
トラブルシューティング
Q: python コマンドが見つからない
A: 上記の「PowerShell プロファイル設定」を行うか、uv run python を使ってください:
uv run python script.py
または仮想環境を有効化:
.\.venv\Scripts\Activate.ps1
Q: VS Code が古い Python を参照している
A: .vscode/settings.json に python.defaultInterpreterPath を設定し、VS Code をリロードしてください。
Q: NumPy 2.0 と PyTorch の互換性問題
A: NumPy のバージョンを指定してインストール:
uv pip install "numpy<2.0" torch
Q: uv をアンインストールしたい
uv self uninstall
まとめ:もう環境構築で泣かない
uv で解決できること
- ✅ Python バージョンの混在問題 →
uv python installで一元管理 - ✅ グローバル汚染 →
uv venvでプロジェクトごとに隔離 - ✅ 依存関係の衝突 →
uv lockで再現可能な環境を保証 - ✅ 遅いインストール → Rust 製で 10 ~ 100 倍高速(公式ベンチマーク)
- ✅ ツールの乱立 → pip, venv, pyenv を uv 1 つに統合
従来の方法との比較
| 従来の方法 | uv を使う方法 |
|---|---|
| Python 公式インストーラー | uv python install 3.12 |
python -m venv .venv |
uv venv |
pip install package |
uv pip install package |
pip freeze > requirements.txt |
uv pip freeze または uv lock |
「また環境壊れた...」から卒業しましょう!
2025 年の Python 開発は uv から始めよう 🚀
参考リンク
- uv 公式ドキュメント
- Astral 社公式サイト
- uv GitHub リポジトリ
- Python 環境構築 2025 年版(fullfront.co.jp) - この記事を書くきっかけになった参考記事
この記事は 2025 年 12 月 29 日時点の情報です。uv v0.9.18 で実機動作確認しています(Windows 11)。