目次
概要
Windows 11で uv を用いて、Pythonのバージョンを指定した仮想環境を構築する手順を、実際のコマンドと共にまとめました。
本記事は、全4話のシリーズの4つ目です。
目標は、指定したバージョンのPythonとライブラリ(numpy、pandas)が動く仮想環境を構築することです。複雑な設定は行いません。
異なるバージョンで動かした結果を比較したり、複数人の開発で環境を揃える必要があるときに役立ちます。
初回のみ必要な準備を済ませてから、以下の①~⑥の流れで検証します。
① 仮想環境作成
② ライブラリインストール
③ サンプルプログラム実行
④ 構成ファイル出力
⑤ 仮想環境削除
⑥ 構成ファイルから仮想環境再作成
uv を用いる方法の特徴として、以下が挙げられます。
用途や制約に応じて、適宜使い分けましょう。
長所:動作が軽い、Pythonとライブラリを一元管理できる、パッケージ化に対応
短所:歴史が浅い(2024年に登場)、多機能すぎる
動作確認環境
- Windows 11
- Anaconda不使用
- PowerShellでコマンド実行
- 使用したバージョンは以下の通り
| ライブラリ | PC本体にインストール したバージョン | 仮想環境にインストール するバージョン |
|---|---|---|
| Python | 3.12.6 | 3.13.13 (指定) |
| pip | 24.2 (不使用) | (不要) |
| numpy | 2.2.6 (不使用) | 2.4.4 (指定) |
| pandas | 2.2.3 (不使用) | 3.0.2 (指定) |
| uv | 0.11.19 | (不要) |
検証のため、PC本体に既にインストールされている物とは異なるバージョンを指定しました。
pandasはインストールすると、間接的に依存するライブラリ(numpy、python-dateutil、six、tzdata)も自動的にインストールされます。
- C:\PythonTest をカレントフォルダに設定
- カレントフォルダに以下のサンプルプログラム(version_test.py)を格納
現在有効になっているPythonとライブラリのバージョンを表示するプログラムを、検証に用いました。
※pipは使わないのでコメントアウトしました。
import sys
# import pip
import numpy as np
import pandas as pd
import dateutil
import six
import tzdata
libraries = [
# (pip, "pip"),
(np, "numpy"),
(pd, "pandas"),
(dateutil, "python-dateutil"),
(six, "six"),
(tzdata, "tzdata")
]
print(f"\nPython version: {sys.version}")
print("\nLibrary version:")
for lib, name in libraries:
version = getattr(lib, "__version__", "N/A")
print(f"{name:15} : {version}")uv準備
初回のみ必要な準備です。
uvをインストール
30秒ほど待つと、ユーザーフォルダ(C:\Users\[username])に「.local」フォルダが作成されます。
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"PowerShell再起動
インストールされたことを確認
uv --version(参考)uvをアンインストールする手順
.local フォルダを削除
uv以外のアプリがこのフォルダ使用していれば、uvから始まるファイルだけを削除してください。
Remove-item C:\Users\[username]\.local環境変数を削除
タスクバーの検索窓から「環境変数を編集」を開き、ユーザー環境変数の「Path」の中身で .local を含む項目を削除します。

uvの隠しフォルダを削除
C:\Users\[username]\AppData\Local\uv および
C:\Users\[username]\AppData\Roaming\uv が存在していれば削除します。
仮想環境構築
仮想環境を構築するプロジェクト毎に実施します。
仮想環境作成
利用可能なPythonバージョンを確認
既にPC内にインストールされているバージョンは、パスが表示されます。
(下図の例では Python 3.14.5 がインストール済)
uv python list --all-versions
(参考)特定のPythonバージョンをアンインストール
uv python uninstall 3.13.13tomlファイルを新規作成
仮想環境に使用するPythonバージョンを引数に与えます。この時点では、指定したPythonバージョンがインストールされていなくても構いません。
カレントフォルダに pyproject.toml が作成されます。--bare を付けずに実行すると、tomlファイルの他に main.py、README.md、gitフォルダ等が生成されます。今回は最小限のシンプルな構成を目指すために使用しません。
uv init --bare --python 3.13.13仮想環境を新規作成
仮想環境に使用するPythonバージョンを引数に与えます。指定したPythonバージョンが、C:\Users\[username]\AppData\Roaming\uv\python の中に自動的にインストールされます。
カレントフォルダには「.venv」フォルダが作成されます。
uv venv --python 3.13.13Pythonバージョンを固定
再度、仮想環境に使用するPythonバージョンを引数に与えます。
カレントフォルダには「.python-version」ファイルが作成されます。
uv python pin 3.13.13仮想環境を有効化
コマンドの先頭が (PythonTest) に変わります。
.venv\Scripts\activate仮想環境のPythonバージョンを確認
python -V仮想環境のライブラリ一覧を確認
この時点では、何一つ入っていない状態です。
uv pip list
ライブラリインストール
指定したバージョンのライブラリをインストール
C:\PythonTest\.venv\Lib\site-packages にライブラリ名のフォルダが増えます。
間接的に依存するライブラリも自動でインストールされます。
カレントディレクトリには「uv.lock」が作成され、ライブラリをインストールするたびに、tomlファイルとlockファイルの内容が上書き更新されます。
uv add numpy==2.4.4
uv add pandas==3.0.2ライブラリ一覧を確認
uv pip list
ライブラリの依存関係を図示
uv tree
(参考)ライブラリをアンインストール
関連ライブラリも自動で削除されます。
uv remove pandasサンプルプログラム実行
カレントフォルダのサンプルプログラム(version_test.py)を実行
python version_test.py
構成ファイル出力
前節で生成された「pyproject.toml」「uv.lock」「.python-version」が、構成ファイルとなります。
pyproject.toml:

uv.lock:

.python-version:

仮想環境削除
仮想環境を終了
コマンドの先頭がカレントフォルダの表示に戻ります。
deactivate仮想環境を削除
カレントフォルダの「.venv」フォルダが跡形なく削除されます。
Remove-Item .venv -Recurse -Force構成ファイルから仮想環境再作成
仮想環境再作成するフォルダには、「pyproject.toml」「uv.lock」「.python-version」の3つを配置しておきます。

カレントフォルダ移動
cd C:\PythonTest構成ファイルから仮想環境を再作成
カレントフォルダに「.venv」フォルダが作成されます。
現在有効になっているPythonバージョンがPCにインストールされていなくても、正しく動きます。
「pyproject.toml」無し:lockファイルが自動生成されますが、間接的に依存するライブラリのバージョンを再現する保証がありません。
「uv.lock」無し:エラーになり再作成できません。
「.python-version」無し:Pythonのバージョンを再現する保証がありません。
uv sync仮想環境を有効化
コマンドの先頭が (PythonTest) に変わります。
.venv\Scripts\activateカレントフォルダのサンプルプログラム(version_test.py)を実行
python version_test.py
