Alternatives to virtualenv
A command-line tool that creates isolated Python environments, each with its own interpreter and packages. Notes say what changes if you switch.
The original
virtualenv
A command-line tool that creates isolated Python environments, each with its own interpreter and packages.
15 alternatives
Most similar to virtualenv first.
Pipenv
A Python dependency management tool that combines package installation and virtual environments in one workflow.
Pipenv combines virtual environments with package installation and a lock file for reproducible installs, using its own Pipfile format instead of a plain requirements file.
pyenv-virtualenv
A pyenv plugin for creating and managing Python virtualenvs and conda environments from the command line.
pyenv-virtualenv manages virtualenvs and conda environments through pyenv commands, but requires pyenv first and runs only on UNIX-like systems without native Windows support.
Hatch
A command-line Python project manager for environments, builds, testing, versioning and publishing.
Hatch manages environments alongside builds, testing, versioning and publishing in one command-line tool, with a plugin system but more options to learn.
pipx
Installs Python command line applications in isolated environments.
uv
A single Rust tool that replaces pip, pipx, poetry, pyenv, virtualenv and twine, and installs packages 10 to 100 times faster.
uv creates virtual environments and also replaces pip, poetry and pyenv in one Rust tool, with much faster installs, though behaviour changes between minor versions.
Poetry
A command-line tool for managing Python project dependencies, building packages and publishing them to PyPI.
Poetry manages environments together with dependencies, a lock file, package builds and PyPI publishing, using its own workflow that differs from plain pip and requirements files.
virtualenvwrapper
Shell extensions for creating, switching between, and managing Python virtual environments.
pyenv
Builds and switches between multiple Python versions.
Pixi
Manage project packages and environments across languages.
Pixi manages project environments across languages with lock files and cross-platform support, with available packages depending on the configured package channels.
Python
A general-purpose programming language used for scripting, web backends, data analysis and machine learning.
Miniforge
Minimal installers for Conda and Mamba preconfigured to use the conda-forge package channel.
Miniforge provides conda and mamba environments with conda-forge as the default channel, suited to data science work but using conda packages instead of pip-style virtualenvs.
PDM
A Python package and dependency manager that follows current PEP standards for project metadata and builds.
PDM handles environments and dependencies following current PEP standards, adds lock files and workspaces, and requires Python 3.10 or later to run.
Miniconda
A minimal installer that sets up conda and Python without the full Anaconda package bundle.
Pyflow
A command-line tool that manages Python interpreters and project dependencies with a focus on simplicity.
Mamba
Fast cross-platform package manager compatible with conda, including the standalone micromamba.