uv
workspace
Using workspaces | uv
Task Runner 的なものはない
Using uv run as a task runner · Issue 5903 · astral-sh/uv
tool
プロジェクトの管理と別でコマンドだけ使いたい場合
uv tool install PACKAGE
uv tool dir でインストールディレクトリ見る
uv tool run COMMAND
uvx COMMAND で shorthand
モジュール名とコマンド名が異なる時は uvx --from=PACKAGE COMMAND
例えば uvx --from 'huggingface-hub[cli]' huggingface-cli
Docker なら PATH 通しておくと良い
ENV PATH=/root/.local/bin:$PATH
アグレッシブ
RUN --mount=from=ghcr.io/astral-sh/uv,source=/uv,target=/bin/uv uv sync
最新は uvx PACKAGE@latest
特定のパッケージだけ更新して lock する
$ uv lock --upgrade-package PKG
GitHub Actions
なんでも公式 Doc にあるな
Using uv in GitHub Actions | uv
Docker
Using uv in Docker | uv
astral-sh/uv-docker-example: An example of using uv in Docker images
おおよそ良いけどちょっと変
Issue にもあるように作ってないのに USER していたり
CUDA 関連
uvでPyTorchのCPU / CUDAバージョンを環境ごとに管理する その2
uv pip install torch --torch-backend=autoで互換性の高いPyTorchをインストールする流れ
uv pip install ... で合うバージョンを探せるので、それで入れたバージョンを pyproject.toml に書く
$ uv pip install torch --torch-backend=auto
$ uv pip install "torch==2.7.1" --torch-backend=auto
uv + PEP723
uvで単一のPythonスクリプトのパッケージ管理 | Ki_chi@Blog
PEP723 はスクリプトファイル冒頭に依存を記述する方法
code:pep723.py
# /// script
# requires-python = ">=3.13"
# dependencies = []
# ///
$ uv run file.py
で依存いれて実行できる
uv の管轄パッケージにパスが通るわけではない
$ uv init --script file.py
$ uv add pkg1 pkg2 --script file.py
それはそれとして $ uv run file.py --with pkg1 pkg2 のようにインストールせず依存 package を指定して実行できる
Platform 特有の依存を追加する
$ uv add "spacyapple; sys_platform == 'darwin'"