Installation

via pipx

virtualenv is a CLI tool that needs a Python interpreter to run. If you already have a Python 3.5+ interpreter the best is to use pipx to install virtualenv into an isolated environment. This has the added benefit that later you’ll be able to upgrade virtualenv without affecting other parts of the system.

pipx install virtualenv
virtualenv --help

via pip

Alternatively you can install it within the global Python interpreter itself (perhaps as a user package via the --user flag). Be cautious if you are using a python install that is managed by your operating system or another package manager. pip might not coordinate with those tools, and may leave your system in an inconsistent state. Note, if you go down this path you need to ensure pip is new enough per the subsections below:

python -m pip install --user virtualenv
python -m virtualenv --help

wheel

Installing virtualenv via a wheel (default with pip) requires an installer that can understand the python-requires tag (see PEP-503), with pip this is version 9.0.0 (released 2016 November). Furthermore, in case you’re not installing it via the PyPi you need to be using a mirror that correctly forwards the python-requires tag (notably the OpenStack mirrors don’t do this, or older devpi versions - added with version 4.7.0).

sdist

When installing via a source distribution you need an installer that handles the PEP-517 specification. In case of pip this is version 18.0.0 or later (released on 2018 July). If you cannot upgrade your pip to support this you need to ensure that the build requirements from pyproject.toml are satisfied before triggering the install.

via zipapp

You can use virtualenv without installing it too. We publish a Python zipapp, you can just download this from https://bootstrap.pypa.io/virtualenv.pyz and invoke this package with a python interpreter:

python virtualenv.pyz --help

The root level zipapp is always the current latest release. To get the last supported zipapp against a given python minor release use the link https://bootstrap.pypa.io/virtualenv/x.y/virtualenv.pyz, e.g. for the last virtualenv supporting Python 2.7 use https://bootstrap.pypa.io/virtualenv/2.7/virtualenv.pyz.

via setup.py

We don’t recommend and officially support this method. One should prefer using an installer that supports PEP-517 interface, such as pip 19.0.0 or later. That being said you might be able to still install a package via this method if you satisfy build dependencies before calling the install command (as described under sdist).

latest unreleased

Installing an unreleased version is discouraged and should be only done for testing purposes. If you do so you’ll need a pip version of at least 18.0.0 and use the following command:

pip install git+https://github.com/pypa/virtualenv.git@master

Python and OS Compatibility

virtualenv works with the following Python interpreter implementations:

  • CPython versions 2.7, 3.4, 3.5, 3.6, 3.7, 3.8

  • PyPy 2.7 and 3.4+.

This means virtualenv works on the latest patch version of each of these minor versions. Previous patch versions are supported on a best effort approach. virtualenv works on the following platforms:

  • Unix/Linux,

  • macOS,

  • Windows.