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’)