Skip to content

Latest commit

 

History

History
133 lines (91 loc) · 4.79 KB

ensurepip.rst

File metadata and controls

133 lines (91 loc) · 4.79 KB

:mod:`ensurepip` --- Bootstrapping the pip installer

.. module:: ensurepip
   :synopsis: Bootstrapping the "pip" installer into an existing Python
              installation or virtual environment.

.. versionadded:: 3.4


The :mod:`ensurepip` package provides support for bootstrapping the pip installer into an existing Python installation or virtual environment. This bootstrapping approach reflects the fact that pip is an independent project with its own release cycle, and the latest available stable version is bundled with maintenance and feature releases of the CPython reference interpreter.

In most cases, end users of Python shouldn't need to invoke this module directly (as pip should be bootstrapped by default), but it may be needed if installing pip was skipped when installing Python (or when creating a virtual environment) or after explicitly uninstalling pip.

Note

This module does not access the internet. All of the components needed to bootstrap pip are included as internal parts of the package.

.. seealso::

   :ref:`installing-index`
      The end user guide for installing Python packages

   :pep:`453`: Explicit bootstrapping of pip in Python installations
      The original rationale and specification for this module.


Command line interface

The command line interface is invoked using the interpreter's -m switch.

The simplest possible invocation is:

python -m ensurepip

This invocation will install pip if it is not already installed, but otherwise does nothing. To ensure the installed version of pip is at least as recent as the one bundled with ensurepip, pass the --upgrade option:

python -m ensurepip --upgrade

By default, pip is installed into the current virtual environment (if one is active) or into the system site packages (if there is no active virtual environment). The installation location can be controlled through two additional command line options:

  • --root <dir>: Installs pip relative to the given root directory rather than the root of the currently active virtual environment (if any) or the default root for the current Python installation.
  • --user: Installs pip into the user site packages directory rather than globally for the current Python installation (this option is not permitted inside an active virtual environment).

By default, the scripts pipX and pipX.Y will be installed (where X.Y stands for the version of Python used to invoke ensurepip). The scripts installed can be controlled through two additional command line options:

  • --altinstall: if an alternate installation is requested, the pipX script will not be installed.
  • --default-pip: if a "default pip" installation is requested, the
    pip script will be installed in addition to the two regular scripts.

Providing both of the script selection options will trigger an exception.

Module API

:mod:`ensurepip` exposes two functions for programmatic use:

.. function:: version()

   Returns a string specifying the bundled version of pip that will be
   installed when bootstrapping an environment.

.. function:: bootstrap(root=None, upgrade=False, user=False, \
                        altinstall=False, default_pip=False, \
                        verbosity=0)

   Bootstraps ``pip`` into the current or designated environment.

   *root* specifies an alternative root directory to install relative to.
   If *root* is ``None``, then installation uses the default install location
   for the current environment.

   *upgrade* indicates whether or not to upgrade an existing installation
   of an earlier version of ``pip`` to the bundled version.

   *user* indicates whether to use the user scheme rather than installing
   globally.

   By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where
   X.Y stands for the current version of Python).

   If *altinstall* is set, then ``pipX`` will *not* be installed.

   If *default_pip* is set, then ``pip`` will be installed in addition to
   the two regular scripts.

   Setting both *altinstall* and *default_pip* will trigger
   :exc:`ValueError`.

   *verbosity* controls the level of output to :data:`sys.stdout` from the
   bootstrapping operation.

   .. note::

      The bootstrapping process has side effects on both ``sys.path`` and
      ``os.environ``. Invoking the command line interface in a subprocess
      instead allows these side effects to be avoided.

   .. note::

      The bootstrapping process may install additional modules required by
      ``pip``, but other software should not assume those dependencies will
      always be present by default (as the dependencies may be removed in a
      future version of ``pip``).