Environment backends

The buildenv tool relies on existing virtual environment management backends, delegating the environment creation/handling to them.

When a new buildenv is installed, you need to select one of the supported backends (see below).

Backends can be considered regarding several properties:

  • immutability: a backend may create immutable environments; an immutable environment is disposable, only created for a temporary purpose, and not cached in the current project folder.

  • project type: there is a difference between Python projects, for which it is usual to have the venv cached in the project folder, and other projects (i.e. which don’t include any Python source code)

  • requirements type: to manage a given environment dependencies, requirements shall be listed either using the pip requirements file format, or be exclusively base on the pyproject file

  • workspace handling: for Python projects, it is usually convenient to share a given venv between projects

Supported backends by buildenv tool and their properties are described by this table

Backend

Immutable

Project type

Requirements format

Workspace handling

uv

Python

pyproject.toml file

uvx

other

requirements.txt file

pip

Python

requirements.txt file

pipx

other

requirements.txt file

pip backend (legacy)

The legacy pip tool is mainly a package manager, without being a project manager.

It is supported for compatibility with legacy projects, but not recommended for new projects.

pipx backend (legacy)

Backed either by pip or uv, (pipx)[https://pipx.pypa.io/stable/] is a legacy disposable venv handling solution, not recommended for new projects.