What is a package manager ?
Package manager is a utility that automates the process of installing, upgrading, and configuring dependencies in a programming environment. The popular package managers like pip, poetry, conda etc, download the dependencies from repositories like PyPI, and maintain specific versions of the same so that there are no conflicts when it comes to running your program/script in different virtual environments.
What do people use most ?
As per the 2023 Python Developer Survey by JetBrains, Pip is clearly used by most of the developers.

What is UV ?
It is a package manager developed by Astral team, who are the creators of Ruff which is a python linter. It is marketed as extremely fast compared to other package managers like pip, poetry etc. I found this graphic on their official website.

My own Speed test
I tested it with my Medium Summarizer project, on the time taken to install dependencies:
As you can see below, that there are a lot of dependencies in the project:
requests
lxml
pandas
openpyxl
openai
chromadb
langchain
tiktoken
langchain-experimental
langchain-community
langchain-openai
pyarrow
anthropic
langchain-anthropic
With Pip:
#command
time uv pip install -r requirements.txt --no-cache
With UV:
time pip install -r requirements.txt --no-cache

It is considerably fast; it took me a little more than 1 minute using pip
, while uv
was able to do it in around 19 seconds.
How do you install it ?
you can install it as shown below on Mac/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
and like this on windows :
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
What does UV offer ?
Python Version Management
You can install python versions like below, usually I would use pyenv to do that.
uv python install 3.10
#output
Searching for Python versions matching: Python 3.10
Installed Python 3.10.14 in 1.68s
+ cpython-3.10.14-linux-x86_64-gnu
PIP Commands Compatibility:
Compatibility is intentional so that users don’t have to learn the tool from scratch and it’s easy to port your existing scripts by just adding ‘uv’ in front of it. for e.g.
pip install
becomes
uv pip install
this feature is just meant to be used as a bridge and is not intended to fully replicate all pip
commands.Instead, it serves to ease the transition from pip
to UV’s native commands.
Project Management
As an alternative to Poetry, you can execute the following commands to experience robust dependency management in action.
uv init testProject → initiates a project with the below directory structure

As you can see it creates pyproject.toml file with the dependencies, and the corresponding lock file(uv.lock) to lock the dependency versions. Inside the src folder it creates an “__init__” file with a “hello from testProject”.
Script Dependency Annotation
They have a bunch of features to support scripts’ execution in a virtual environment, but what I liked most is the ability to annotate a Python script with dependencies. When you run this script in an environment where uv
is installed, it automatically downloads the necessary dependencies and executes the script. This feature simplifies dependency management for running your script; all you need to focus on is maintaining a single file annotated with the required dependencies.
I took this example from their docs
# /// script
# dependencies = [
# "requests<3",
# "rich",
# ]
# ///
import requests
from rich.pretty import pprint
resp = requests.get("https://peps.python.org/api/peps.json")
data = resp.json()
pprint([(k, v["title"]) for k, v in data.items()][:10])
When you run this, ‘uv’ would create a virtual env with the dependencies and execute the script.
uv run temp.py
Reading inline script metadata from: temp.py
Installed 9 packages in 10ms
[
│ ('1', 'PEP Purpose and Guidelines'),
│ ('2', 'Procedure for Adding New Modules'),
│ ('3', 'Guidelines for Handling Bug Reports'),
│ ('4', 'Deprecation of Standard Modules'),
│ ('5', 'Guidelines for Language Evolution'),
│ ('6', 'Bug Fix Releases'),
│ ('7', 'Style Guide for C Code'),
│ ('8', 'Style Guide for Python Code'),
│ ('9', 'Sample Plaintext PEP Template'),
│ ('10', 'Voting Guidelines')
]
Conclusion
This might be the next big thing since Poetry and Pyenv, which transformed how the industry manages dependencies and virtual environments — and both of these capabilities are integrated into UV. I’m genuinely excited about the direction this project is heading and am seriously considering integrating it into my current work. What do you think about this tool? Let me know in the comments section.