- Home
- Python Package Managers
- virtualenv
virtualenv
What it is
virtualenv is a free command-line tool for creating isolated Python environments on Linux, macOS, and Windows. Each environment receives its own Python, pip, and related tools, keeping installed packages separate from system Python. It supports CPython 3.9–3.15 and PyPy 3.9–3.11; GraalPy 24.1 and later works on Linux and macOS, while RustPython support is experimental. virtualenv can discover Python versions managed by pyenv, mise, or asdf and resolve their shims to the real interpreter. Installation options include uv, pipx, pip, and a self-contained zipapp, with guidance to place the command-line tool in an isolated environment. Cached install images make later environment creation take less than one second according to its comparison with venv. Tox, poetry, and pipx use its programmatic API, while entry-point plugins can extend discovery, creation, seeding, and activation. Releases publish provenance attestations and CycloneDX and SPDX SBOMs. The project is maintained by the Python Packaging Authority and uses the MIT License.
For and against
For
- Free open-source command-line tool
- Keeps project packages separate from system Python
- Supports CPython and PyPy versions
- Finds pyenv, mise, and asdf interpreters
- Provides plugin extension points
Against
- RustPython support is experimental
- Unlisted operating systems are not explicitly supported
- Release verification does not prove source safety
- No free trial is provided
The verdict
virtualenv provides isolated Python environments with broad interpreter discovery and integration options. Its documented platform and interpreter support should guide compatibility decisions.
Who it suits
virtualenv suits Python developers who need separate environments for projects, interpreters, and dependencies. It fits users on Linux, macOS, or Windows who work with supported Python implementations.
Plans and prices
virtualenv
Open-source command-line tool · creates isolated Python environments
Read 9 Oct 2026 · virtualenv.pypa.io
On the record
- Environment setup
- It creates an environment with its own Python, pip, and other tools, and packages installed into it remain isolated from system Python.virtualenv.pypa.io · read 9 Oct 2026
- Extensibility
- Entry-point plugins can add interpreter discovery, environment creation, seeding, and activation behavior.virtualenv.pypa.io · read 9 Oct 2026
- Installation options
- The project documents installation through uv, pipx, pip, or a self-contained zipapp; it recommends installing the command-line tool in an isolated environment.virtualenv.pypa.io · read 9 Oct 2026
- Integrations
- The documentation names tox, poetry, and pipx as tools that use virtualenv’s programmatic API.virtualenv.pypa.io · read 9 Oct 2026
- License
- virtualenv is distributed under the MIT License.virtualenv.pypa.io · read 9 Oct 2026
- Maker
- The Python Packaging Authority is a working group that maintains core software projects used in Python packaging.pypa.io · read 9 Oct 2026
- Operating systems
- The documented tested platforms include Linux, macOS, and Windows; unlisted platforms may work but are not explicitly supported.virtualenv.pypa.io · read 9 Oct 2026
- Project history
- virtualenv was introduced by Ian Bicking in 2007, and PyPA took over its maintenance in 2011.pypa.io · read 9 Oct 2026
- Purpose
- virtualenv is a command-line tool for creating isolated Python environments.virtualenv.pypa.io · read 9 Oct 2026
- Python discovery
- When selecting a Python version, virtualenv can discover versions managed by pyenv, mise, or asdf and resolve their shims to the real binary.virtualenv.pypa.io · read 9 Oct 2026
- Python support
- It supports CPython 3.9–3.15 and PyPy 3.9–3.11; GraalPy 24.1 and later is supported on Linux and macOS, and RustPython support is experimental.virtualenv.pypa.io · read 9 Oct 2026
- Release security
- Releases publish provenance attestations and CycloneDX SBOMs, with SPDX SBOMs also available for the wheel; the documentation explains how to verify release files.virtualenv.pypa.io · read 9 Oct 2026
- Release verification limit
- A successful release verification ties a file to the release workflow but does not prove that its source is free of bugs or malicious code.virtualenv.pypa.io · read 9 Oct 2026
- Speed
- It caches pre-built install images, so subsequent environment creation takes less than one second, according to its comparison with venv.virtualenv.pypa.io · read 9 Oct 2026