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:
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.