Lizlog

WindowsでPython + uv入門

2026-11-02
Python + uv article cover image

Pythonの環境構築といえば pip + venv が定番でしたが、最近は Astral の uv が速くて便利です。Windowsでの導入手順をメモします。

uvのインストール

PowerShellを開いて以下を実行します。

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

インストール後に新しいターミナルを開き、バージョンを確認します。

uv --version
uv 0.6.x (...)

uv が見つからない場合は ~\.local\bin にPATHが通っているか確認してください。

プロジェクトの作成

作業フォルダでプロジェクトを作ります。

mkdir hello-uv
cd hello-uv
uv init

uv init すると以下のファイルができます。

hello-uv/
├── .python-version
├── README.md
├── hello.py
└── pyproject.toml

仮想環境とパッケージ管理

uv はコマンド実行時に自動で仮想環境(.venv)を用意します。明示的に作る場合は次の通りです。

uv venv

パッケージの追加と実行はこう書きます。

uv add requests
uv run hello.py

uv run は .venv がなければ自動作成し、pyproject.toml に応じた環境で実行します。pip install や source .venv/Scripts/activate を手で叩く必要はありません。

Pythonバージョンの指定

プロジェクトごとにPythonのバージョンを固定できます。

uv python pin 3.12
uv sync

uv sync で pyproject.toml とロックファイルに応じた環境を再現します。チーム開発や別PCへの移行時に便利です。

最初のPythonコード

uv init で作られた hello.py はそのまま実行できます。

def main() -> None:
    print("Hello from Lizlog!")


if __name__ == "__main__":
    main()
uv run hello.py
Hello from Lizlog!

外部パッケージを使う例として、HTTPリクエストを投げてみます。

uv add requests
import requests


def main() -> None:
    res = requests.get("https://api.github.com/zen", timeout=10)
    print(res.text)


if __name__ == "__main__":
    main()

uv add したパッケージは pyproject.toml に記録されるので、別PCでは uv sync 一発で同じ環境を再現できます。

よく使うライブラリ

用途別によく使うものをまとめます。

用途 ライブラリ 導入
HTTP通信 requests / httpx uv add httpx
HTML解析 beautifulsoup4 uv add beautifulsoup4
表データ pandas uv add pandas
Web API fastapi + uvicorn uv add fastapi uvicorn
テスト pytest uv add --dev pytest
型チェック mypy uv add --dev mypy
フォーマット ruff uvx ruff check .

開発時だけ使うものは --dev を付けると依存を分けられます。ruff のように単発で試したいものは uvx が便利です。

よく使うコマンド早見表

やりたいこと コマンド
仮想環境の作成 uv venv
パッケージ追加 uv add <name>
スクリプト実行 uv run <file>
環境の再現 uv sync
ツールの一時実行 uvx <tool>

uvx はインストール不要で ruff や black などを試せるので気軽に使えます。

uvx ruff check .

まとめ

  • インストールは irm ... | iex の一行で終わる
  • uv init → uv add → uv run の3つで基本は回る
  • activate 忘れやバージョン不一致のストレスが減る

次は実際に小さなスクリプトを書いて uv run で回してみます。