Skip to main content

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

Project description

uv

uv image image image Actions status Discord

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

Shows a bar chart with benchmark results.

Installing Trio's dependencies with a warm cache.

Highlights

uv is backed by Astral, the creators of Ruff.

Installation

Install uv with our standalone installers, or from PyPI:

# On macOS and Linux.
$ curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
$ powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
$ pip install uv

See the installation documentation for details and alternative installation methods.

Documentation

uv's documentation is available at docs.astral.sh/uv.

Additionally, the command line reference documentation can be viewed with uv help.

Features

Project management

uv manages project dependencies and environments, with support for lockfiles, workspaces, and more, similar to rye or poetry:

$ 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!

See the project documentation to get started.

Tool management

uv executes and installs command-line tools provided by Python packages, similar to pipx.

Run a tool in an ephemeral environment using uvx (an alias for uv tool run):

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

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

Install a tool with 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

See the tools documentation to get started.

Python management

uv installs Python and allows quickly switching between versions.

Install multiple Python versions:

$ 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

Download Python versions as needed:

$ 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.
>>>>

Use a specific Python version in the current directory:

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

See the Python installation documentation to get started.

Script support

uv manages dependencies and environments for single-file scripts.

Create a new script and add inline metadata declaring its dependencies:

$ echo 'import requests; print(requests.get("https://astral.sh"))' > example.py

$ uv add --script example.py requests
Updated `example.py`

Then, run the script in an isolated virtual environment:

$ uv run example.py
Reading inline script metadata from: example.py
Installed 5 packages in 12ms
<Response [200]>

See the scripts documentation to get started.

A pip-compatible interface

uv provides a drop-in replacement for common pip, pip-tools, and virtualenv commands.

uv extends their interfaces with advanced features, such as dependency version overrides, platform-independent resolutions, reproducible resolutions, alternative resolution strategies, and more.

Migrate to uv without changing your existing workflows — and experience a 10-100x speedup — with the uv pip interface.

Compile requirements into a platform-independent requirements file:

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

Create a virtual environment:

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

Install the locked 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
 ...

See the pip interface documentation to get started.

Platform support

See uv's platform support document.

Versioning policy

See uv's versioning policy document.

Contributing

We are passionate about supporting contributors of all levels of experience and would love to see you get involved in the project. See the contributing guide to get started.

Acknowledgements

uv's dependency resolver uses PubGrub under the hood. We're grateful to the PubGrub maintainers, especially Jacob Finkelman, for their support.

uv's Git implementation is based on Cargo.

Some of uv's optimizations are inspired by the great work we've seen in pnpm, Orogene, and Bun. We've also learned a lot from Nathaniel J. Smith's Posy and adapted its trampoline for Windows support.

License

uv is licensed under either of

at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in uv by you, as defined in the Apache-2.0 license, shall be dually licensed as above, without any additional terms or conditions.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uv-0.4.11.tar.gz (1.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

uv-0.4.11-py3-none-win_amd64.whl (12.8 MB view details)

Uploaded Python 3Windows x86-64

uv-0.4.11-py3-none-win32.whl (11.7 MB view details)

Uploaded Python 3Windows x86

uv-0.4.11-py3-none-musllinux_1_1_x86_64.whl (12.4 MB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

uv-0.4.11-py3-none-musllinux_1_1_ppc64le.whl (13.5 MB view details)

Uploaded Python 3musllinux: musl 1.1+ ppc64le

uv-0.4.11-py3-none-musllinux_1_1_i686.whl (11.6 MB view details)

Uploaded Python 3musllinux: musl 1.1+ i686

uv-0.4.11-py3-none-musllinux_1_1_armv7l.whl (11.2 MB view details)

Uploaded Python 3musllinux: musl 1.1+ ARMv7l

uv-0.4.11-py3-none-manylinux_2_28_aarch64.whl (11.4 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

uv-0.4.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

uv-0.4.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (15.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

uv-0.4.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (12.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

uv-0.4.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (12.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64

uv-0.4.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (11.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

uv-0.4.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (11.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

uv-0.4.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (11.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64musllinux: musl 1.1+ ARM64

uv-0.4.11-py3-none-macosx_11_0_arm64.whl (10.9 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

uv-0.4.11-py3-none-macosx_10_12_x86_64.whl (11.8 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

uv-0.4.11-py3-none-linux_armv6l.whl (11.5 MB view details)

Uploaded Python 3

File details

Details for the file uv-0.4.11.tar.gz.

File metadata

  • Download URL: uv-0.4.11.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11.tar.gz
Algorithm Hash digest
SHA256 10438b6987a2a07aa0bbaf1adcdcaf6c02b0470532e7fe85690099c8dc2d1805
MD5 3399999573e7deee76673f3e8544198e
BLAKE2b-256 69dd17cfd5bc9ea5a92019b0069af8e74bd8084f051d88a9445bf87dae42c70c

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-win_amd64.whl.

File metadata

  • Download URL: uv-0.4.11-py3-none-win_amd64.whl
  • Upload date:
  • Size: 12.8 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 85199e9972019849b172d76b5f957fbf8f803a53c9cb61600cc783180786543a
MD5 965921cea589805de5f9c72fbdd3a1d0
BLAKE2b-256 1a627e233c2643ca125de68b406e252f4287fdfc7f8429568e9cb1cae1321309

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-win32.whl.

File metadata

  • Download URL: uv-0.4.11-py3-none-win32.whl
  • Upload date:
  • Size: 11.7 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11-py3-none-win32.whl
Algorithm Hash digest
SHA256 59ef3ed1ff4d3db7bfe5582706dff78a723101311782a1ad41744459e83949d4
MD5 eb842f040b8286ac14444a95b8f20e7a
BLAKE2b-256 3daa6b6b7bd32e406a40fdb1da9f2741f85f6b3b8d3e14bc34f4429313514687

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: uv-0.4.11-py3-none-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: Python 3, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e5245cce77982e35263c66f65e3f79291e927820b3da1b3fe271633046225a88
MD5 1dd76c575eb3e3ee01a45b2e8386854d
BLAKE2b-256 ec2b8946ad344ec62a29e6ad03295650e4766ac8fa6e142365e32f20f2a48d3d

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-musllinux_1_1_ppc64le.whl.

File metadata

  • Download URL: uv-0.4.11-py3-none-musllinux_1_1_ppc64le.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: Python 3, musllinux: musl 1.1+ ppc64le
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11-py3-none-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 1b169c6d7e1cc2dfea7429b77a64b6ee6cd4669d14267cefeefc89a9b355a003
MD5 c2b36995edfdb4a686631e64cea4b0a4
BLAKE2b-256 1e79854c288efedc8fc169e2d84fe31a46a0bc54a199eea494a77d706a226be7

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-musllinux_1_1_i686.whl.

File metadata

  • Download URL: uv-0.4.11-py3-none-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 11.6 MB
  • Tags: Python 3, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 397368d30abb80797085074401ab6773282b2ca6a61bf624b6f1ec0b7431f79b
MD5 6de82ba38326a4f7a21f7c05c2e12ce9
BLAKE2b-256 9d0678c393200f76c0d12bd3e5ff09afdd6870302507630ea0bec6cc159d83f0

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-musllinux_1_1_armv7l.whl.

File metadata

  • Download URL: uv-0.4.11-py3-none-musllinux_1_1_armv7l.whl
  • Upload date:
  • Size: 11.2 MB
  • Tags: Python 3, musllinux: musl 1.1+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 a91e6ca28a01481d5cfc064ae004a23710c2aab52f7757b03e3f8abaf1112ba8
MD5 986c1399ba9cdc653996d253ee879138
BLAKE2b-256 a4a0af97004d73d4ab3018c0eed1193eb40dbc2da105333808a55f2b8b11dfc6

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: uv-0.4.11-py3-none-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 11.4 MB
  • Tags: Python 3, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c5f64d77720b86e3ff965a4f3613d55f16e9b29d8b01a1d8a9dfe127c130ef65
MD5 f0add4a0600795271c8faf04db4c080a
BLAKE2b-256 18cdf59c42cc259e0f3e104c3f3c66f9007c864e8cc41e48881631cf8b07745d

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for uv-0.4.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d62089003a56a89a6f5842ec0bede90890fa234e1c330350b7940fa0a6d32e99
MD5 e2b64fbbaf5d0246f37176da9009e58c
BLAKE2b-256 88c8d1d10ecb041472576359a4bdad7d61c1d091f4c392940a21af2ff0e2aa9f

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for uv-0.4.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 737c848a47a3d494c168f67a2771b0dcc96ea6c3b9a28e6b34deebb12a916bd8
MD5 ac15aaee08e429658c82162a791c783e
BLAKE2b-256 f7310d109db809747ad4b463e141b0a108e4d51b60d4e489ba1091b505b1eb49

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for uv-0.4.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b5844a41eecbb6729f7cb3e0af45bf183a1a0af8c14dc8cf4afe99192c188e30
MD5 55dc287ffb808a1b7c0d4819ca5a3d98
BLAKE2b-256 e91b688a34460dfc8d804606130859f0afcfb2de8368a4021fc4ed25a9dbfb44

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl.

File metadata

File hashes

Hashes for uv-0.4.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 844b89eec72680a8bb25ed28ca53fa989f9721bf9878af647cfaec77933445c1
MD5 666db54492a7b031a42bf19c785ef5bb
BLAKE2b-256 433205f26505188d896088e24784bbb028e63743578f85c95d45dabdc4440b6d

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for uv-0.4.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f277f4522a4a3abae5744e8eb9a91d1445dba17dbf3681b66b76ebc0739538d7
MD5 68cdad4834bd0537dac7a2c05d9b4046
BLAKE2b-256 81eb634ed1bbd375047d270af33da796366268241af17682c661015b46d56544

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for uv-0.4.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 96c06fa24a528483c70495ff53d18da420d468f8939041a31cfa95f99a6be6c3
MD5 5fc27376e848702c8d74791966f90935
BLAKE2b-256 288af2fd2ff42b01eadf4cbab27ae12f0d9bd9fe921cd6885c4e925a5bc2ebee

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for uv-0.4.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 a37a9cad2d050f9d488efabdef6a6f2af8d3305e434062e0a5eb3354107b6817
MD5 438f6b809352cb5b3650236b97ac3da2
BLAKE2b-256 cb0e05f2a81c7fd519f91220ad7f95474571800acf4ec82b56bc83d5272e6f10

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: uv-0.4.11-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 10.9 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22711f73f9b0f88b88923096438af514d1cc3ba085dbae617ce6823fa2caecec
MD5 b7f72bf4099f80e0035db8b85965f1ba
BLAKE2b-256 fa76331b2ba48c5d2a170c99851d08f2f8477fd6dd2a7013570cfb55961fb97c

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: uv-0.4.11-py3-none-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 11.8 MB
  • Tags: Python 3, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4ad6528d86f3c22701bd8bd429a37ab285bae23bd967edf261aedddc109ce8ab
MD5 c55f6bc7b1f8e6e3455f262e9c53de29
BLAKE2b-256 ec44600ce99c87f34a28f91a269fb5b713aa0ad4cc830ff32e4e2b810428c171

See more details on using hashes here.

File details

Details for the file uv-0.4.11-py3-none-linux_armv6l.whl.

File metadata

  • Download URL: uv-0.4.11-py3-none-linux_armv6l.whl
  • Upload date:
  • Size: 11.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for uv-0.4.11-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 1f334d0d55eb1593016b02f9b66e204716c32ad125cdcabde72154072e151cc4
MD5 00b3ce0f23da1487c2c318c3e49249ea
BLAKE2b-256 ab09cb05adf37330a5675f85550d2ce391931e6b3eac62f118d5cac1c8acd9b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page