# `ensurepip` — Ejecutando el instalador `pip`

Nuevo en la versión 3.4.

Source code: Lib/ensurepip

El paquete `ensurepip` proporciona soporte para ejecutar el instalador `pip` en una instalación de Python existente o en un entorno virtual. Este enfoque de arranque refleja el hecho de que `pip` es un proyecto independiente con su propio ciclo de lanzamiento, y la última versión estable disponible se incluye con el mantenimiento y las versiones de características del intérprete de referencia CPython.

En la mayoría de los casos, los usuarios finales de Python no deberían tener que invocar este módulo directamente (como `pip` deben arrancarse de forma predeterminada), pero puede ser necesario si se omitió la instalación de `pip` al instalar Python (o al crear un entorno virtual) o después de desinstalar explícitamente `pip`.

Nota

Este módulo no accede a Internet. Todos los componentes necesarios para ejecutar `pip` se incluyen como partes internas del paquete.

Ver también

Instalando módulos de Python

  La guía del usuario final para instalar paquetes python

PEP 453: Arranque explícito de pip en instalaciones de Python

  La justificación original y la especificación de este módulo.

## Interfaz de línea de comandos

La interfaz de línea de comandos se invoca mediante el modificador `-m` del intérprete.

La invocación más simple posible es:

    python -m ensurepip

Esta invocación instalará `pip` si aún no está instalado, pero de lo contrario no hace nada. Para asegurarse de que la versión instalada de `pip` sea al menos tan reciente como la disponible en `ensurepip`, pase la opción `--upgrade`:

    python -m ensurepip --upgrade

De forma predeterminada, `pip` se instala en el entorno virtual actual (si uno está activo) o en los paquetes de sitio del sistema (si no hay ningún entorno virtual activo). La ubicación de instalación se puede controlar a través de dos opciones de línea de comandos adicionales:

- `--root <dir>`: Instala `pip` en relación con el directorio raíz dado en lugar de la raíz del entorno virtual activo actualmente (si existe) o la raíz predeterminada para la instalación actual de Python.

- `--user`: Instala `pip` en el directorio de paquetes de sitio de usuario en lugar de globalmente para la instalación actual de Python (esta opción no está permitida dentro de un entorno virtual activo).

De forma predeterminada, se instalarán los scripts `pipX` y `pipX.Y` (donde X.Y representa la versión de Python utilizada para invocar `ensurepip`). Los scripts instalados se pueden controlar a través de dos opciones de línea de comandos adicionales:

- `--altinstall`: si se solicita una instalación alternativa, no se instalará el script `pipX`.

- `--default-pip`: si se solicita una instalación de «pip predeterminado», se instalará el script `pip` además de los dos scripts regulares.

Proporcionar ambas opciones de selección de script desencadenará una excepción.

## API del módulo

`ensurepip` expone dos funciones para su uso programático:

`ensurepip.``version`()

  Retorna una cadena que especifica la versión disponible de pip que se instalará al arrancar un entorno.

`ensurepip.``bootstrap`(root=None, upgrade=False, user=False, altinstall=False, default_pip=False, verbosity=0)

  Ejecuta `pip` en el entorno actual o designado.

  root especifica un directorio raíz alternativo para instalar en relación con. Si root es `None`, la instalación utiliza la ubicación de instalación predeterminada para el entorno actual.

  upgrade indica si se debe actualizar o no una instalación existente de una versión anterior de `pip` a la versión disponible.

  user indica si se debe utilizar el esquema de usuario en lugar de instalar globalmente.

  De forma predeterminada, se instalarán los scripts `pipX` y `pipX.Y` (donde X.Y representa la versión actual de Python).

  Si se establece altinstall, no se instalará `pipX`.

  Si se establece default_pip, se instalará `pip` además de los dos scripts normales.

  Establecer tanto altinstall como default_pip desencadenará `ValueError`.

  verbosity controla el nivel de salida a `sys.stdout` de la operación de ejecución.

  Genera un evento auditing `ensurepip.bootstrap` con el argumento `root`.

  Nota

  El proceso de ejecución tiene efectos secundarios tanto en `sys.path` como `os.environ`. Invocar la interfaz de línea de comandos en un subproceso en su lugar permite evitar estos efectos secundarios.

  Nota

  El proceso de ejecución puede instalar módulos adicionales requeridos por `pip`, pero otro software no debe asumir que esas dependencias siempre estarán presentes de forma predeterminada (ya que las dependencias se pueden eliminar en una versión futura de `pip`).