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