Skip to content

uv#

uvは、Rustで書かれた、非常に高速なPythonパッケージとプロジェクトマネージャです。

Shows a bar chart with benchmark results.

Shows a bar chart with benchmark results.

Installing the Trio dependencies with a warm cache.

Highlights#

  • 🚀 pippip-toolspipxpoetrypyenvvirtualenvなどを置き換える単一のツールです。
  • ⚡️ pipよりも->10-100x faster
  • 🐍 PythonバージョンのためのInstalls and manages
  • 🛠️ PythonアプリケーションのためのRuns and installs
  • ❇️ Runs scriptsinline dependency metadataをサポートします。
  • 🗂️ universal lockfileを使用して、comprehensive project managementを提供します。
  • 🔩 pip-compatible interfaceにより、使い慣れたCLIを使用してパフォーマンスを向上させることができます。
  • 🏢 スケーラブルなプロジェクト用にCargoスタイルのworkspacesをサポートします。
  • 💾 依存性の重複除外のためにglobal cacheを使用してディスクを効率的に使用できます。
  • curlまたはpipを使用して、RustまたはPythonなしでインストールできます。
  • 🖥️ macOS、Linux、Windowsをサポートします。

uvは、Ruffの作成者であるAstralによって支援されています。

Getting started#

公式スタンドアロンインストーラでのuvのインストール方法:

macOS and Linux
$ curl -LsSf https://astral.sh/uv/install.sh | sh
Windows
$ powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

Then, check out the first steps or read on for a brief overview.

次に、first stepsをチェックするか、簡単な概要を読んでください。

Tip

uvはpip、Homebrewなどと一緒にインストールすることもできます。 installation pageにあるすべての方法を参照してください。

Project management#

uvはプロジェクトの依存関係と環境を管理し、ryepoetryと同様に、ロックファイルやワークスペースなどをサポートします。

$ uv init example
Initialized project `example` at `/home/user/example`

$ cd example

$ uv add ruff
Creating virtualenv at: .venv
Resolved 2 packages in 170ms
   Built example @ file:///home/user/example
Prepared 2 packages in 627ms
Installed 2 packages in 1ms
 + example==0.1.0 (from file:///home/user/example)
 + ruff==0.5.4

$ uv run ruff check
All checks passed!

開始するには、project guideを参照してください。

Tool management#

uvは、pipxと同様に、Pythonパッケージで提供されるコマンドラインツールを実行およびインストールします。

uvxを使ってツールを一時的な環境で実行します。:

$ uvx pycowsay 'hello world!'
Resolved 1 package in 167ms
Installed 1 package in 9ms
 + pycowsay==0.0.0.2
  """

  ------------
< hello world! >
  ------------
   \   ^__^
    \  (oo)\_______
       (__)\       )\/\
           ||----w |
           ||     ||

uv tool installでツールをインストールします。:

$ uv tool install ruff
Resolved 1 package in 6ms
Installed 1 package in 2ms
 + ruff==0.5.4
Installed 1 executable: ruff

$ ruff --version
ruff 0.5.4

開始するには、tools guideを参照してください。

Python management#

uvはPythonをインストールし、バージョンをすばやく切り替えることができます。

複数のPythonバージョンをインストールします。:

$ uv python install 3.10 3.11 3.12
Searching for Python versions matching: Python 3.10
Searching for Python versions matching: Python 3.11
Searching for Python versions matching: Python 3.12
Installed 3 versions in 3.42s
 + cpython-3.10.14-macos-aarch64-none
 + cpython-3.11.9-macos-aarch64-none
 + cpython-3.12.4-macos-aarch64-none

必要に応じてPythonのバージョンをダウンロードします。:

$ uv venv --python 3.12.0
Using Python 3.12.0
Creating virtualenv at: .venv
Activate with: source .venv/bin/activate

$ uv run --python pypy@3.8 -- python --version
Python 3.8.16 (a9dbdca6fc3286b0addd2240f11d97d8e8de187a, Dec 29 2022, 11:45:30)
[PyPy 7.3.11 with GCC Apple LLVM 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>>

現在のディレクトリにある特定のPythonバージョンを使用します。:

$ uv python pin pypy@3.11
Pinned `.python-version` to `pypy@3.11`

開始するには、installing Python guideを参照してください。

The pip interface#

uvは、一般的なpippip-toolsvirtualenvコマンドに代わるものを提供します。

uvは、依存バージョンのオーバーライド、プラットフォームに依存しない解決、再現可能な解決、代替の解決方法などの高度な機能を使用してインタフェースを拡張します。

uv pipインターフェイスを使用して、既存のワークフローを変更せずにuvに移行し、10~100倍の高速化を実現します。

プラットフォームに依存しない要件ファイルに要件をコンパイルします。

$ uv pip compile docs/requirements.in \
   --universal \
   --output-file docs/requirements.txt
Resolved 43 packages in 12ms

仮想環境を作成します。:

$ uv venv
Using Python 3.12.3
Creating virtualenv at: .venv
Activate with: source .venv/bin/activate

ロックされたrequirementsをインストールします。:

$ uv pip sync docs/requirements.txt
Resolved 43 packages in 11ms
Installed 43 packages in 208ms
 + babel==2.15.0
 + black==24.4.2
 + certifi==2024.7.4
 ...

開始するには、pip interface documentationを参照してください。

Learn more#

uvの使用を開始するには、first stepsを参照するか、直接guidesを参照してください。