Python environments and packages

This module provides tools for using Python virtual environments and installing Python packages using the pip installer.
See also
fabtools.python_setuptools and fabtools.require.python

Virtual environments

fabtools.python.virtualenv(*args, _kwds_)**[source]
Context manager to activate an existing Python virtual environment.
from fabric.api import run from fabtools.python import virtualenv with virtualenv(‘/path/to/virtualenv’): run(‘python -V’)

Installing pip

fabtools.python.ispip_installed(_version=None, pip_cmd=’pip’)[source]
Check if pip is installed.
fabtools.python.installpip(_python_cmd=’python’, use_sudo=True)[source]
Install the latest version of pip, using the given Python interpreter.
import fabtools if not fabtools.python.is_pip_installed(): fabtools.python.install_pip()
Note
pip is automatically installed inside a virtualenv, so there is no need to install it yourself in this case.

Installing packages

fabtools.python.isinstalled(_package, pip_cmd=’pip’)[source]
Check if a Python package is installed (using pip).
Package names are case insensitive.
Example:
from fabtools.python import virtualenv import fabtools with virtualenv(‘/path/to/venv’): fabtools.python.install(‘Flask’) assert fabtools.python.isinstalled(‘flask’)
**fabtools.python.install(_packages
, upgrade=False, download_cache=None, allow_external=None, allow_unverified=None, quiet=False, pip_cmd=’pip’, use_sudo=False, user=None, exists_action=None)[source]
Install Python package(s) using pip.
Package names are case insensitive.
Starting with version 1.5, pip no longer scrapes insecure external urls by default and no longer installs externally hosted files by default. Use
allowexternal=[‘foo’, ‘bar’] or allow_unverified=[‘bar’, ‘baz’] to change these behaviours for specific packages.
Examples:
import fabtools # Install a single package fabtools.python.install(‘package’, use_sudo=True) # Install a list of packages fabtools.python.install([‘pkg1’, ‘pkg2’], use_sudo=True)
fabtools.python.install_requirements(_filename
, upgrade=False, download_cache=None, allow_external=None, allow_unverified=None, quiet=False, pip_cmd=’pip’, use_sudo=False, user=None, exists_action=None)**[source]
Install Python packages from a pip requirements file.
import fabtools fabtools.python.install_requirements(‘project/requirements.txt’)