Create a new environment

$ virtualenv [path/to/venv]

Customize the prompt prefix
$ virtualenv --prompt=[prompt_prefix] [path/to/venv]

Use a different version of Python with virtualenv
$ virtualenv --python=[path/to/pythonbin] [path/to/venv]

Start (select) the environment
$ source [path/to/venv]/bin/activate

Stop the environment
$ deactivate


virtualenv [--version] [--with-traceback] [-v | -q] [--app-data APP_DATA] [--clear-app-data] [--discovery {builtin}] [-p py] [--creator {builtin,cpython3-posix,venv}] [--seeder {app-data,pip}] [--no-seed] [--activators comma_sep_list] [--clear] [--system-site-packages] [--symlinks | --copies] [--no-download | --download] [--extra-search-dir d [d ...]] [--pip version] [--setuptools version] [--wheel version] [--no-pip] [--no-setuptools] [--no-wheel] [--symlink-app-data] [--prompt prompt] [-h] dest


The virtualenv utility creates virtual Python instances, each invokable with its own Python executable. Each instance can have different sets of modules, installable via easy_install. Virtual Python instances can also be created without root access.

optional arguments:


display the version of the virtualenv package and it's location, then exit


on failure also display the stacktrace internals of virtualenv (default: False)

--app-data APP_DATA

a data folder used as cache by the virtualenv (default: <temp folder>)


start with empty app data folder (default: False)

-h, --help

show this help message and exit


verbosity = verbose - quiet, default INFO, mapping => CRITICAL=0, ERROR=1, WARNING=2, INFO=3, DEBUG=4, NOTSET=5

-v, --verbose

increase verbosity (default: 2)

-q, --quiet

decrease verbosity (default: 0)


discover and provide a target interpreter

--discovery {builtin}

interpreter discovery method (default: builtin)

-p py, --python py

target interpreter for which to create a virtual (either absolute path or identifier string) (default: /usr/bin/python3)


options for creator builtin

--creator {builtin,cpython3-posix,venv}

create environment via (builtin = cpython3-posix) (default: builtin)


directory to create virtualenv at


remove the destination directory if exist before starting (will overwrite files otherwise) (default: False)


give the virtual environment access to the system site-packages dir (default: False)


try to use symlinks rather than copies, when symlinks are not the default for the platform (default: True)

--copies, --always-copy

try to use copies rather than symlinks, even when symlinks are the default for the platform (default: False)


options for seeder app-data

--seeder {app-data,pip}

seed packages install method (default: app-data)

--no-seed, --without-pip

do not install seed packages (default: False)


pass to enable download of the latest pip, setuptools, and wheel from PyPI (default: False)

--no-download, --never-download

pass to disable download of the latest pip, setuptools, and wheel from PyPI (default: True)

--extra-search-dir d [d ...]

a path containing wheels the seeder may also use beside bundled (can be set 1+ times) (default: [])

--pip version

pip version to install, bundle for bundled (default: latest)

--setuptools version

setuptools version to install, bundle for bundled (default: latest)

--wheel version

wheel version to install, bundle for bundled (default: latest)


do not install pip (default: False)


do not install setuptools (default: False)


do not install wheel (default: False)


symlink the python packages from the app-data folder (requires seed pip>=19.3) (default: False)


options for activation scripts

--activators comma_sep_list

activators to generate - default is all supported (default: bash,cshell,fish,powershell,python,xonsh)

--prompt prompt

provides an alternative prompt prefix for this environment (default: None)

config file $HOME/.config/virtualenv/virtualenv.ini (change via env var VIRTUALENV_CONFIG_FILE)


This man-page was created using help2man and then updated by Scott Kitterman <> and is licensed under the same terms as virtualenv.

Copied to clipboard