Skip to content

pip Operations

Manage pip (python) packages. Compatible globally or inside a virtualenv (virtual environment).

Facts used in these operations: files.File, pip.PipPackages.

pip.packages

Install/remove/update pip packages.

pip.packages(
         packages: 'str | list[str] | None' = None,
         present=True,
         latest=False,
         requirements: 'str | None' = None,
         pip='pip',
         virtualenv: 'str | None' = None,
         virtualenv_kwargs: 'dict | None' = None,
         extra_install_args: 'str | None' = None,
         **kwargs,
    )
  • packages: list of packages to ensure
  • present: whether the packages should be installed
  • latest: whether to upgrade packages without a specified version
  • requirements: location of requirements file to install/uninstall
  • pip: name or path of the pip directory to use
  • virtualenv: root directory of virtualenv to work in
  • virtualenv_kwargs: dictionary of arguments to pass to pip.virtualenv
  • extra_install_args: additional arguments to the pip install command

Virtualenv: This will be created if it does not exist already. virtualenv_kwargs will be passed to pip.virtualenv which can be used to control how the env is created.

Versions: Package versions can be pinned like pip: <pkg>==<version>.

Example:

pip.packages(
    name="Install pyinfra into a virtualenv",
    packages=["pyinfra"],
    virtualenv="/usr/local/bin/venv",
)

Global arguments

This operation also inherits all global arguments.

pip.venv

Add/remove Python virtualenvs.

pip.venv(
         path: 'str',
         python: 'str | None' = None,
         site_packages=False,
         always_copy=False,
         present=True,
         **kwargs,
    )
  • python: python interpreter to use
  • site_packages: give access to the global site-packages
  • always_copy: always copy files rather than symlinking
  • present: whether the virtualenv should exist

Example:

pip.venv(
    name="Create a virtualenv",
    path="/usr/local/bin/venv",
)

Global arguments

This operation also inherits all global arguments.

pip.virtualenv

Add/remove Python virtualenvs.

pip.virtualenv(
         path: 'str',
         python: 'str | None' = None,
         venv=False,
         site_packages=False,
         always_copy=False,
         present=True,
         **kwargs,
    )
  • python: python interpreter to use
  • venv: use standard venv module instead of virtualenv
  • site_packages: give access to the global site-packages
  • always_copy: always copy files rather than symlinking
  • present: whether the virtualenv should exist

Example:

from pyinfra.operations import pip
pip.virtualenv(
    name="Create a virtualenv",
    path="/usr/local/bin/venv",
)

Global arguments

This operation also inherits all global arguments.