🐡

いまさらだが uv に入門してみた

2025/01/13に公開

uv ってなんだろう

https://github.com/astral-sh/uv

An extremely fast Python package and project manager, written in Rust.

って書いてあるから、つまり Rust で作っためっちゃ早い Python のパッケージマネージャだ。
え、すごそうってなったから、早速インストールしてみる

インストール

$ brew install uv

これでインストールできるっぽい。

$ uv --version
uv 0.5.18 (Homebrew 2025-01-11)

やった!!

簡単に使ってみる

uv init python-uv-sample

これをやると

$ tree .
.
├── README.md
├── hello.py
└── pyproject.toml

0 directories, 3 files

こんな感じで生成される。

$ uv run hello.py
Hello from python-uv-sample!

という具合に、hello.py を実行することができる。

バージョンの指定

$ uv python install 3.10
$ uv python pin 3.10

を指定すれば、.python-versionファイルを作成してくれて、
そのディレクトリ配下で利用するpythonバージョンを指定することができる。

仮想環境の追加

$ uv venv --python 3.10
Using CPython 3.10.16
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

ってでてくるので、このコマンドで良い感じ。

パッケージの追加

追加はどのようにしていけば良いのだろうか

$ uv add ruff
Resolved 2 packages in 424ms
Prepared 1 package in 248ms
Installed 1 package in 2ms
 + ruff==0.9.1

これで行けるらしい。

$ cat pyproject.toml
[project]
name = "python-uv-sample"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
    "ruff>=0.9.1",
]****

ruff が依存関係に入ってきた。いえーい✌️

$ uv run ruff check
All checks passed!

パッケージのコマンドもこれで動いてくれた。素晴らしい。

まとめ

使い始めるのに、あまり迷わずにいけた。
monorepo とかで良い感じにd毛いるかも知りたいので、これからもうちょっと深掘りしてみよう!

Discussion