# Install virtualenv with Homebrew, apt, dnf, Nix

Tool for creating isolated virtual python environments. Version 21.6.0 via Homebrew; verified 2026-07-08.

## Install

```sh
sudo av install brew:virtualenv
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install virtualenv
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install virtualenv
```

  Evidence: Debian stable package indexes: virtualenv from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install python3-virtualenv
```

  Evidence: Fedora Rawhide package metadata: python3-virtualenv from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#virtualenv
```

  Evidence: nixpkgs package indexes: virtualenv from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

## Package facts

- **Package key:** brew:virtualenv
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/virtualenv>
- **Version:** 21.6.0
- **Source summary:** Tool for creating isolated virtual python environments
- **Homepage:** <https://virtualenv.pypa.io/>
- **Repository:** <https://github.com/pypa/virtualenv>
- **Upstream docs:** <https://virtualenv.pypa.io/en/stable>
- **License:** MIT
- **Source archive:** <https://files.pythonhosted.org/packages/74/65/ec1d92091671e6407d3e7c1f5801413bb7b2b57630a50cae7750456ba0ed/virtualenv-21.6.0.tar.gz>
- **Last updated:** 2026-07-08T03:16:55Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- virtualenv (cli)
- virtualenv (alias)

## Dependencies

- python@3.14

## Install behavior

- Post-install hook: not defined
- Bottle: available on all

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 21.6.0
- Package-manager updated: 2026-07-08
- Local data: ok
- Upstream repository: https://virtualenv.pypa.io/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

virtualenv is one of the foundational Python packaging tools: it creates isolated Python environments so projects can have their own interpreter-facing package directories instead of sharing a global site-packages. The Python Packaging Authority history records virtualenv as introduced by Ian Bicking in 2007, and PEP 405 later described third-party virtualenv as the established predecessor to Python's standard-library venv module.

### Project history

virtualenv grew out of Ian Bicking's earlier workingenv and virtual-python work. Legacy virtualenv documentation describes it as a successor to workingenv and an extension of virtual-python, written by Bicking with sponsorship from The Open Planning Project and later maintained by a developer group under the PyPA umbrella.

The first PyPI files for virtualenv date to September 2007, and the legacy changelog records v0.8 as the initial release. In 2012, Python accepted PEP 405 for built-in virtual environments, explicitly citing the popularity of Ian Bicking's virtualenv as evidence that environment isolation was already a core Python workflow.

The project continued after venv entered the standard library because virtualenv supported more interpreter discovery modes, older Python versions, cross-platform activation scripts, and bundled or seeded installer behavior. The 20.x line was a major modernization of the implementation and seeding model, and recent changelogs show the project still tracking new Python versions and packaging behavior.

### Adoption history

virtualenv became a default building block for Python application development, testing, and deployment before Python had a built-in equivalent. PEP 405 described virtual environments as already widely used for dependency management, non-admin package installation, and automated testing across Python versions.

Its adoption is tightly linked to pip and PyPA packaging culture. For years, tutorials, CI systems, tox configurations, and distribution packaging recipes assumed that creating a throwaway virtualenv was the ordinary way to test Python code without contaminating the system interpreter.

### How it is used

The common workflow is to run `virtualenv ENV`, activate the environment with the shell-specific activation script, and then install dependencies with pip into that isolated prefix. Modern virtualenv can also select interpreters, delegate some creation paths to venv, and seed environments with packaging tools according to its configured policy.

Even where `python -m venv` is sufficient, virtualenv remains useful when users want faster creation, broader interpreter support, consistent behavior across platforms, or compatibility with older packaging workflows. It is also embedded indirectly in higher-level tools that create disposable environments for testing, building, or application isolation.

### Why package nerds care

virtualenv is package-nerd bedrock: it changed Python packaging from a global-machine problem into a per-project directory problem. Much of the later Python tooling stack, including virtualenvwrapper, tox, pipenv, Poetry, nox, and uv-style environment workflows, either builds on the same isolation idea or interoperates with its directory conventions.

### Timeline

- 2007: virtualenv was introduced by Ian Bicking.
- 2007-09-14: The earliest virtualenv files currently listed on PyPI were uploaded.
- 2012: PEP 405 proposed Python's standard-library virtual environments, citing virtualenv's established popularity.
- 2020: virtualenv 20.x became the modern line with a rewritten creation and seeding architecture.
- 2026: The active 21.x line continues to track current Python packaging and interpreter changes.

### Related projects

- workingenv and virtual-python were direct predecessors. Python's standard-library venv module standardized a subset of the virtual-environment concept. virtualenvwrapper and VirtualFish are shell-oriented managers built around virtualenv-style environments.

### Sources

- PEP 405: https://peps.python.org/pep-0405/
- PyPA packaging history: https://www.pypa.io/en/latest/history/
- virtualenv PyPI project: https://pypi.org/project/virtualenv/
- virtualenv changelog: https://virtualenv.pypa.io/en/latest/changelog.html
- virtualenv legacy changelog: https://virtualenv.pypa.io/en/legacy/changes.html
- virtualenv legacy development documentation: https://virtualenv.pypa.io/en/legacy/development.html


## Security Notes

No matching local secret-handling manifest was found for virtualenv. Nucleus package metadata is still published here so future coverage has a stable package URL.



## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: platformdirs app config directory/virtualenv.ini
- Windows: platformdirs app config directory/virtualenv.ini
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** virtualenv
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - virtualenv - 20.31.2+ds-1: normalized package name match | Debian stable package indexes: virtualenv from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Python virtual environment creator (Dependency package) | https://virtualenv.pypa.io/
- Nix - virtualenv: normalized package name match | nixpkgs package indexes: virtualenv from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - virtualenv - 20.25.0+ds-2: normalized package name match | Ubuntu 24.04 LTS package indexes: virtualenv from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Python virtual environment creator (Dependency package) | https://virtualenv.pypa.io/
- dnf - python3-virtualenv - 21.4.2-1.fc45: normalized package name match | Fedora Rawhide package metadata: python3-virtualenv from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Tool to create isolated Python environments | http://pypi.python.org/pypi/virtualenv


## Related links

- [Package publisher tools](https://www.automicvault.com/pkg/package-publishers/) - Belongs to a package publishing or registry command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [jython](https://www.automicvault.com/pkg/brew/jython/) - Shares av.db curated category or tags: cli, language-runtime, python.
- [micropython](https://www.automicvault.com/pkg/brew/micropython/) - Shares av.db curated category or tags: cli, language-runtime, python.
- [pypy](https://www.automicvault.com/pkg/brew/pypy/) - Shares av.db curated category or tags: cli, language-runtime, python.
- [pypy3.10](https://www.automicvault.com/pkg/brew/pypy3-10/) - Shares av.db curated category or tags: cli, language-runtime, python.
- [python-freethreading](https://www.automicvault.com/pkg/brew/python-freethreading/) - Shares av.db curated category or tags: cli, language-runtime, python.
- [coconut](https://www.automicvault.com/pkg/brew/coconut/) - Shares av.db curated category or tags: cli, language-runtime, python.
- [cython](https://www.automicvault.com/pkg/brew/cython/) - Shares av.db curated category or tags: cli, language-runtime, python.
- [hy](https://www.automicvault.com/pkg/brew/hy/) - Shares av.db curated category or tags: cli, language-runtime, python.

## Combined YAML source

View the package source record on GitHub. [combined/virtualenv.yml](https://github.com/automic-vault/db/blob/main/combined/virtualenv.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
