2013-11-11 08:11:55 -04:00
|
|
|
:mod:`ensurepip` --- Bootstrapping the ``pip`` installer
|
|
|
|
========================================================
|
|
|
|
|
|
|
|
.. module:: ensurepip
|
2014-10-30 18:45:27 -03:00
|
|
|
:synopsis: Bootstrapping the "pip" installer into an existing Python
|
2013-11-11 08:11:55 -04:00
|
|
|
installation or virtual environment.
|
|
|
|
|
2013-12-20 15:40:11 -04:00
|
|
|
.. versionadded:: 3.4
|
|
|
|
|
2022-11-18 15:33:40 -04:00
|
|
|
**Source code:** :source:`Lib/ensurepip`
|
|
|
|
|
2016-06-11 16:02:54 -03:00
|
|
|
--------------
|
|
|
|
|
2013-11-11 08:11:55 -04:00
|
|
|
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::
|
|
|
|
|
2014-03-16 01:13:56 -03:00
|
|
|
:ref:`installing-index`
|
2013-11-11 08:11:55 -04:00
|
|
|
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.
|
|
|
|
|
2022-08-02 16:00:41 -03:00
|
|
|
.. include:: ../includes/wasm-notavail.rst
|
2013-11-11 08:11:55 -04:00
|
|
|
|
|
|
|
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``
|
2021-01-20 12:07:21 -04:00
|
|
|
is at least as recent as the one available in ``ensurepip``, pass the
|
2013-11-11 08:11:55 -04:00
|
|
|
``--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:
|
|
|
|
|
2023-09-23 03:31:20 -03:00
|
|
|
* :samp:`--root {dir}`: Installs ``pip`` relative to the given root directory
|
2013-11-11 08:11:55 -04:00
|
|
|
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
|
2020-01-01 18:26:33 -04:00
|
|
|
``pip`` script will be installed in addition to the two regular scripts.
|
2013-11-11 08:11:55 -04:00
|
|
|
|
|
|
|
Providing both of the script selection options will trigger an exception.
|
|
|
|
|
|
|
|
|
|
|
|
Module API
|
|
|
|
----------
|
|
|
|
|
|
|
|
:mod:`ensurepip` exposes two functions for programmatic use:
|
|
|
|
|
|
|
|
.. function:: version()
|
|
|
|
|
2021-01-20 12:07:21 -04:00
|
|
|
Returns a string specifying the available version of pip that will be
|
2013-11-11 08:11:55 -04:00
|
|
|
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.
|
2016-10-19 10:29:26 -03:00
|
|
|
If *root* is ``None``, then installation uses the default install location
|
2013-11-11 08:11:55 -04:00
|
|
|
for the current environment.
|
|
|
|
|
|
|
|
*upgrade* indicates whether or not to upgrade an existing installation
|
2021-01-20 12:07:21 -04:00
|
|
|
of an earlier version of ``pip`` to the available version.
|
2013-11-11 08:11:55 -04:00
|
|
|
|
|
|
|
*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.
|
|
|
|
|
2019-06-27 14:47:59 -03:00
|
|
|
.. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
|
2019-06-24 12:42:54 -03:00
|
|
|
|
2013-12-23 02:16:07 -04:00
|
|
|
.. 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.
|
|
|
|
|
2013-11-11 08:11:55 -04:00
|
|
|
.. 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``).
|