UVのチートシートです。
UVは速くて素晴らしいです。
インストール
再起動が面倒だったので、source $HOME/.local/bin/envしておきました。
# On macOS and Linux.
$ curl -LsSf https://astral.sh/uv/install.sh | sh
downloading uv 0.9.7 x86_64-unknown-linux-gnu
no checksums to verify
installing to /home/fukuhara/.local/bin
uv
uvx
everything's installed!
To add $HOME/.local/bin to your PATH, either restart your shell or run:
source $HOME/.local/bin/env (sh, bash, zsh)
source $HOME/.local/bin/env.fish (fish)
fukuhara@fukuhara-yohei:~$ source $HOME/.local/bin/env
便利かもと思いshell 補完スクリプトを入れる
# bash
echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
# zsh
echo 'eval "$(uv generate-shell-completion zsh)"' >> ~/.zshrc
# fish
echo 'uv generate-shell-completion fish | source' >> ~/.config/fish/config.fish
uv アップデート
バージョン確認とアップデート
uv self version
uv self update
uv self version
Python インストール
3.12をインストール。すごく速いことに驚きました(体感で5秒程度)。
uv python install 3.12
Python version 確認
python --versionを直接実行せずにuvを介する。Activateされていれば直接python --versionでもOK。
$ uv run python --version
Python 3.12.12
Python 一覧出力
一覧出力で、利用可能なものとインストールされているPythonの一覧出力。
$ uv python list
cpython-3.15.0a1-linux-x86_64-gnu <download available>
cpython-3.15.0a1+freethreaded-linux-x86_64-gnu <download available>
cpython-3.14.0-linux-x86_64-gnu <download available>
cpython-3.14.0+freethreaded-linux-x86_64-gnu <download available>
cpython-3.13.9-linux-x86_64-gnu <download available>
cpython-3.13.9+freethreaded-linux-x86_64-gnu <download available>
cpython-3.12.12-linux-x86_64-gnu .local/bin/python3.12 -> .local/share/uv/python/cpython-3.12.12-linux-x86_64-gnu/bin/python3.12
cpython-3.12.12-linux-x86_64-gnu .local/share/uv/python/cpython-3.12.12-linux-x86_64-gnu/bin/python3.12
cpython-3.12.3-linux-x86_64-gnu /usr/bin/python3.12
cpython-3.12.3-linux-x86_64-gnu /usr/bin/python3 -> python3.12
cpython-3.11.14-linux-x86_64-gnu <download available>
後略
インストール済みのみを一覧化したい場合はオプション--only-installed
$ uv python list --only-installed
cpython-3.14.2-linux-x86_64-gnu /home/fukuhara/.local/bin/python3.14 -> /home/fukuhara/.local/share/uv/python/cpython-3.14.2-linux-x86_64-gnu/bin/python3.14
cpython-3.14.2-linux-x86_64-gnu /home/fukuhara/.local/share/uv/python/cpython-3.14.2-linux-x86_64-gnu/bin/python3.14
cpython-3.12.12-linux-x86_64-gnu /home/fukuhara/.local/bin/python3.12 -> /home/fukuhara/.local/share/uv/python/cpython-3.12.12-linux-x86_64-gnu/bin/python3.12
cpython-3.12.12-linux-x86_64-gnu /home/fukuhara/.local/share/uv/python/cpython-3.12.12-linux-x86_64-gnu/bin/python3.12
cpython-3.12.9-linux-x86_64-gnu /home/fukuhara/.local/share/uv/python/cpython-3.12.9-linux-x86_64-gnu/bin/python3.12
cpython-3.12.3-linux-x86_64-gnu /usr/bin/python3.12
cpython-3.12.3-linux-x86_64-gnu /usr/bin/python3 -> python3.12
Project 作成
-pオプション使って Python バージョン指定ができます。
uv init hello-world -p 3.12
Current Directry 移動して中身を見ました
$ ls -al
drwxr-xr-x 3 fukuhara fukuhara 4096 Nov 5 09:59 .
drwxr-xr-x 3 fukuhara fukuhara 4096 Nov 5 09:59 ..
drwxr-xr-x 7 fukuhara fukuhara 4096 Nov 5 09:59 .git
-rw-r--r-- 1 fukuhara fukuhara 109 Nov 5 09:59 .gitignore
-rw-r--r-- 1 fukuhara fukuhara 5 Nov 5 09:59 .python-version
-rw-r--r-- 1 fukuhara fukuhara 0 Nov 5 09:59 README.md
-rw-r--r-- 1 fukuhara fukuhara 89 Nov 5 09:59 main.py
-rw-r--r-- 1 fukuhara fukuhara 157 Nov 5 09:59 pyproject.toml
作成されたpyproject.toml
[project]
name = "hello-world"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
Python version 固定(pin)
PythonのVersion固定。
uv python pin 3.12
パッケージ追加
uv add
とても速くてびっくり。良く使うオプションは、未リリースをインストールするときの--prerelease allow。
uv add numpy
開発環境だけに使うのであれば--devを付加。
uv add --dev "pytest"
これにより、pyproject.tomlに以下のエントリが追加される。
[dependency-groups]
dev = [
"jupyterlab>=4.5.1",
]
uv pip install
requirements.txt を使う場合。
pyproject.tomlやuv.lockは更新されない点に注意。
uv pip install -r requirements.txt
パッケージ削除
uv remove <package>
プロジェクト環境の更新
uv sync
Python Script 実行
uv run python xxxx.py