Freedom251 › Python Package Managers
virtualenv

What virtualenv is
virtualenv is a free command-line tool for creating separate Python environments. Each environment has its own Python interpreter, pip, and other tools, keeping packages installed there isolated from system Python. It is documented for Linux, macOS, and Windows, with support for CPython 3.9–3.15 and PyPy 3.9–3.11. GraalPy 24.1 and later is supported on Linux and macOS; RustPython support is experimental.
When selecting a Python version, virtualenv can find interpreters managed by pyenv, mise, or asdf and resolve their shims to the actual binary. The tool caches pre-built install images; its comparison with venv says later environment creation takes less than one second. Installation options include uv, pipx, pip, and a self-contained zipapp, and the project recommends keeping the command-line tool in an isolated environment. Its programmatic API is used by tox, poetry, and pipx. Entry-point plugins can extend interpreter discovery, environment creation, seeding, and activation. The Python Packaging Authority maintains virtualenv; PyPA is a working group responsible for core Python packaging projects. The tool uses the MIT License. Releases publish provenance attestations and CycloneDX SBOMs, as well as SPDX SBOMs for the wheel, and documentation explains how to verify release files.
Who it suits
virtualenv suits Python developers who want project packages separated from system Python. It is also relevant to users of tox, poetry, or pipx, which use its programmatic API, and to teams that need plugin-based extensions to environment behavior.
What it does well
- Keeps environment packages separate from system Python.
- Supports Linux, macOS, and Windows.
- Finds Python versions managed by pyenv, mise, or asdf.
- Caches install images for faster subsequent environment creation.
- Offers installation through uv, pipx, pip, or a zipapp.
- Uses the MIT License.
What to know first
- RustPython support is experimental.
- GraalPy support is limited to Linux and macOS.
- The documented comparison says faster creation applies to subsequent environments.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| virtualenv | Open-source command-line tool · creates isolated Python environments | Free |
As virtualenv.pypa.io lists them, read 9 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the virtualenv documentation website.
- Choose an installation route: uv, pipx, pip, or the self-contained zipapp.
- Install the command-line tool in an isolated environment, as the project recommends.
- Create an environment with its own Python, pip, and tools.
- Select a Python version; virtualenv can discover versions managed by pyenv, mise, or asdf.
Verdict
Choose virtualenv if you need a free, cross-platform command-line tool to create isolated Python environments, with interpreter discovery and extensibility options. Look elsewhere if you require stable RustPython support; that support is experimental.
Questions
Is virtualenv free?
Yes. The plan is listed as free, and the tool is open source.
Which operating systems and Python versions does it support?
The documented platforms are Linux, macOS, and Windows. It supports CPython 3.9–3.15 and PyPy 3.9–3.11; GraalPy 24.1 and later is supported on Linux and macOS, while RustPython support is experimental.
How can I install virtualenv?
Documented options are uv, pipx, pip, or a self-contained zipapp. The project recommends installing the command-line tool in an isolated environment.
What license does virtualenv use, and who maintains it?
virtualenv uses the MIT License and is maintained by the Python Packaging Authority, a working group for core Python packaging projects.
Does virtualenv work with other Python tools?
Its programmatic API is used by tox, poetry, and pipx. Entry-point plugins can add interpreter discovery, environment creation, seeding, and activation behavior.
How quickly can it create environments?
It caches pre-built install images. Its comparison with venv says subsequent environment creation takes less than one second.
Facts from virtualenv's own pages
- 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, 9 Oct 2026
- Extensibility
- Entry-point plugins can add interpreter discovery, environment creation, seeding, and activation behavior. · virtualenv.pypa.io, 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, 9 Oct 2026
- Integrations
- The documentation names tox, poetry, and pipx as tools that use virtualenv’s programmatic API. · virtualenv.pypa.io, 9 Oct 2026
- License
- virtualenv is distributed under the MIT License. · virtualenv.pypa.io, 9 Oct 2026
- Maker
- The Python Packaging Authority is a working group that maintains core software projects used in Python packaging. · pypa.io, 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, 9 Oct 2026
- Project history
- virtualenv was introduced by Ian Bicking in 2007, and PyPA took over its maintenance in 2011. · pypa.io, 9 Oct 2026
- Purpose
- virtualenv is a command-line tool for creating isolated Python environments. · virtualenv.pypa.io, 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, 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, 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, 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, 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, 9 Oct 2026
Where virtualenv stands on Freedom251
- Python Package Managers#25 of 27