Skip to content

uv

uv is a popular Python library used for project management. It is written in Rust and is 10x to 100x faster than conventional Python libraries for similar tasks.

Creating a Project

Use the following command to create a new project directory named project_app in the current location:

uv init project_app

This command generates various files and folders as shown below. The pyproject.toml file is prefilled with basic metadata. The .python-version file specifies the version of Python used in the project.

project_app
│   .git
│   .gitignore
│   .python-version
│   main.py
│   pyproject.toml
│   README.md

Using uv in an Existing Project

To use uv in an existing project, ensure that a pyproject.toml file is not already present in the project directory.

uv init

Run the above command to create the standard file structure that uv provides in your existing project. This will create a new pyproject.toml file and other files as described above.

Running main.py Using uv

Running main.py with uv creates a .venv folder and a uv.lock file. The script is executed using the Python interpreter from the virtual environment.

uv run main.py

The folder structure after running the above command will look like this:

   .venv
│   .git
│   .gitignore
│   .python-version
│   main.py
│   pyproject.toml
│   README.md
│   uv.lock

Adding Dependencies

Use the following command to add dependencies to your project. For example, to add the requests module:

uv add requests

This command also adds the module entry to the pyproject.toml file:

dependencies = [
    "requests>=2.32.3",
]

Upgrading Dependencies

To upgrade an installed package in the project, use:

uv add --upgrade requests

Removing Dependencies

To remove the requests module from the project, use:

uv remove requests

Adding Development Dependencies

To add a development dependency (e.g., black) and update the pyproject.toml file accordingly:

uv add --dev black

Listing Dependencies

To list dependencies, you can use any of the following commands:

uv pip freeze
uv pip list
uv tree