R functions for managing Python virtual environments.

  envname = NULL,
  python = virtualenv_starter(version),
  version = NULL,
  packages = "numpy",
  requirements = NULL,
  force = FALSE,
  module = getOption("reticulate.virtualenv.module"),
  system_site_packages = getOption("reticulate.virtualenv.system_site_packages", default
    = FALSE),
  pip_version = getOption("reticulate.virtualenv.pip_version", default = NULL),
  setuptools_version = getOption("reticulate.virtualenv.setuptools_version", default =
  extra = getOption("reticulate.virtualenv.extra", default = NULL)

  envname = NULL,
  packages = NULL,
  ignore_installed = FALSE,
  pip_options = character(),
  requirements = NULL,
  python_version = NULL

virtualenv_remove(envname = NULL, packages = NULL, confirm = interactive())



virtualenv_python(envname = NULL)

virtualenv_exists(envname = NULL)

virtualenv_starter(version = NULL, all = FALSE)



The name of, or path to, a Python virtual environment. If this name contains any slashes, the name will be interpreted as a path; if the name does not contain slashes, it will be treated as a virtual environment within virtualenv_root(). When NULL, the virtual environment as specified by the RETICULATE_PYTHON_ENV environment variable will be used instead. To refer to a virtual environment in the current working directory, you can prefix the path with ./<name>.


The path to a Python interpreter, to be used with the created virtual environment. This can also accept a version constraint like "3.10", which is passed on to virtualenv_starter() to find a suitable python binary.


Optional arguments; currently ignored and reserved for future expansion.

version, python_version

(string) The version of Python to use when creating a virtual environment. Python installations will be searched for using virtualenv_starter(). This can a specific version, like "3.9" or "3.9.3", or a comma separated list of version constraints, like ">=3.8", or "<=3.11,!=3.9.3,>3.6"


A set of Python packages to install (via pip install) into the virtual environment, after it has been created. By default, the "numpy" package will be installed, and the pip, setuptools and wheel packages will be updated. Set this to FALSE to avoid installing any packages after the virtual environment has been created.


Filepath to a pip requirements file.


Boolean; force recreating the environment specified by envname, even if it already exists. If TRUE, the pre-existing environment is first deleted and then recreated. Otherwise, if FALSE (the default), the path to the existing environment is returned.


The Python module to be used when creating the virtual environment -- typically, virtualenv or venv. When NULL (the default), venv will be used if available with Python >= 3.6; otherwise, the virtualenv module will be used.


Boolean; create new virtual environments with the --system-site-packages flag, thereby allowing those virtual environments to access the system's site packages? Defaults to FALSE.


The version of pip to be installed in the virtual environment. Relevant only when module == "virtualenv". Set this to FALSE to disable installation of pip altogether.


The version of setuptools to be installed in the virtual environment. Relevant only when module == "virtualenv". Set this to FALSE to disable installation of setuptools altogether.


An optional set of extra command line arguments to be passed. Arguments should be quoted via shQuote() when necessary.


Boolean; ignore previously-installed versions of the requested packages? (This should normally be TRUE, so that pre-installed packages available in the site libraries are ignored and hence packages are installed into the virtual environment.)


An optional character vector of additional command line arguments to be passed to pip.


Boolean; confirm before removing packages or virtual environments?


If TRUE, virtualenv_starter() returns a 2-column data frame, with column names path and version. If FALSE, only a single path to a python binary is returned, corresponding to the first entry when all = TRUE, or NULL if no suitable python binaries were found.


Virtual environments are by default located at ~/.virtualenvs (accessed with the virtualenv_root() function). You can change the default location by defining the WORKON_HOME environment variable.

Virtual environments are created from another "starter" or "seed" Python already installed on the system. Suitable Pythons installed on the system are found by virtualenv_starter().