fabric-virtualenv - Fabric functions for working with remote virtualenvs

fabric-virtualenv provides Fabric functions for creating virtualenvs on remote servers, as well as installing packages to them, and running other Fabric operations in the context of the virtualenv.


A context manager that performs all nested operations in the context of the virtualenv path.

For example:

>>> from fabvenv import virtualenv
>>> with virtualenv('/home/me/venv/'):
...     run('python foo')

It is highly recommended to use an absolute path, as Fabric's cd() contextmanager is always applied BEFORE virtualenv(), regardless of how they are nested.

fabvenv.make_virtualenv(path, dependencies=[], eggs=[], system_site_packages=True)

Create or update a virtualenv in path, installing the given packages and eggs.

  • path - The path to the virtualenv. This path will be created if it does not already exist.
  • dependencies - a list of paths or URLs to Python packages to install with pip.
  • eggs - a list of paths or URLs to eggs to install with easy_install. Eggs can be used to speed up deployments that require libraries to be compiled.
  • system_site_packages - If True, the newly-created virtualenv will expose the system site package. If False, these will be hidden.
  • python_binary - If not None, should be the path to python binary that will be used to create the virtualenv.


Ensure a version of the virtualenv command is available on the remote server. If none exists, a standalone script will be downloaded from the virtualenv github and saved as ~/

The virtualenv command that is prepared is available as env.virtualenv.


  • 0.2.1 - Fix bug in make_virtualenv with installed by prepare_virtualenv.
  • 0.2.0 - make_virtualenv now updates system_site_packages flag on previously-created virtualenvs.