|
| 1 | +:mod:`ensurepip` --- Bootstrapping the ``pip`` installer |
| 2 | +======================================================== |
| 3 | + |
| 4 | +.. module:: ensurepip |
| 5 | + :synopsis: Bootstrapping the ``pip`` installer into an existing Python |
| 6 | + installation or virtual environment. |
| 7 | + |
| 8 | +The :mod:`ensurepip` package provides support for bootstrapping the ``pip`` |
| 9 | +installer into an existing Python installation or virtual environment. This |
| 10 | +bootstrapping approach reflects the fact that ``pip`` is an independent |
| 11 | +project with its own release cycle, and the latest available stable version |
| 12 | +is bundled with maintenance and feature releases of the CPython reference |
| 13 | +interpreter. |
| 14 | + |
| 15 | +In most cases, end users of Python shouldn't need to invoke this module |
| 16 | +directly (as ``pip`` should be bootstrapped by default), but it may be |
| 17 | +needed if installing ``pip`` was skipped when installing Python (or |
| 18 | +when creating a virtual environment) or after explicitly uninstalling |
| 19 | +``pip``. |
| 20 | + |
| 21 | +.. versionadded:: 3.4 |
| 22 | + |
| 23 | +.. note:: |
| 24 | + |
| 25 | + This module *does not* access the internet. All of the components |
| 26 | + needed to bootstrap ``pip`` are included as internal parts of the |
| 27 | + package. |
| 28 | + |
| 29 | +.. seealso:: |
| 30 | + |
| 31 | + :ref:`install-index` |
| 32 | + The end user guide for installing Python packages |
| 33 | + |
| 34 | + :pep:`453`: Explicit bootstrapping of pip in Python installations |
| 35 | + The original rationale and specification for this module. |
| 36 | + |
| 37 | + |
| 38 | +Command line interface |
| 39 | +---------------------- |
| 40 | + |
| 41 | +The command line interface is invoked using the interpreter's ``-m`` switch. |
| 42 | + |
| 43 | +The simplest possible invocation is:: |
| 44 | + |
| 45 | + python -m ensurepip |
| 46 | + |
| 47 | +This invocation will install ``pip`` if it is not already installed, |
| 48 | +but otherwise does nothing. To ensure the installed version of ``pip`` |
| 49 | +is at least as recent as the one bundled with ``ensurepip``, pass the |
| 50 | +``--upgrade`` option:: |
| 51 | + |
| 52 | + python -m ensurepip --upgrade |
| 53 | + |
| 54 | +By default, ``pip`` is installed into the current virtual environment |
| 55 | +(if one is active) or into the system site packages (if there is no |
| 56 | +active virtual environment). The installation location can be controlled |
| 57 | +through two additional command line options: |
| 58 | + |
| 59 | +* ``--root <dir>``: Installs ``pip`` relative to the given root directory |
| 60 | + rather than the root of the currently active virtual environment (if any) |
| 61 | + or the default root for the current Python installation. |
| 62 | +* ``--user``: Installs ``pip`` into the user site packages directory rather |
| 63 | + than globally for the current Python installation (this option is not |
| 64 | + permitted inside an active virtual environment). |
| 65 | + |
| 66 | +By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where |
| 67 | +X.Y stands for the version of Python used to invoke ``ensurepip``). The |
| 68 | +scripts installed can be controlled through two additional command line |
| 69 | +options: |
| 70 | + |
| 71 | +* ``--altinstall``: if an alternate installation is requested, the ``pipX`` |
| 72 | + script will *not* be installed. |
| 73 | + |
| 74 | +* ``--default-pip``: if a "default pip" installation is requested, the |
| 75 | + ``pip`` script will be installed in addition to the two regular scripts. |
| 76 | + |
| 77 | +Providing both of the script selection options will trigger an exception. |
| 78 | + |
| 79 | + |
| 80 | +Module API |
| 81 | +---------- |
| 82 | + |
| 83 | +:mod:`ensurepip` exposes two functions for programmatic use: |
| 84 | + |
| 85 | +.. function:: version() |
| 86 | + |
| 87 | + Returns a string specifying the bundled version of pip that will be |
| 88 | + installed when bootstrapping an environment. |
| 89 | + |
| 90 | +.. function:: bootstrap(root=None, upgrade=False, user=False, \ |
| 91 | + altinstall=False, default_pip=False, \ |
| 92 | + verbosity=0) |
| 93 | + |
| 94 | + Bootstraps ``pip`` into the current or designated environment. |
| 95 | + |
| 96 | + *root* specifies an alternative root directory to install relative to. |
| 97 | + If *root* is None, then installation uses the default install location |
| 98 | + for the current environment. |
| 99 | + |
| 100 | + *upgrade* indicates whether or not to upgrade an existing installation |
| 101 | + of an earlier version of ``pip`` to the bundled version. |
| 102 | + |
| 103 | + *user* indicates whether to use the user scheme rather than installing |
| 104 | + globally. |
| 105 | + |
| 106 | + By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where |
| 107 | + X.Y stands for the current version of Python). |
| 108 | + |
| 109 | + If *altinstall* is set, then ``pipX`` will *not* be installed. |
| 110 | + |
| 111 | + If *default_pip* is set, then ``pip`` will be installed in addition to |
| 112 | + the two regular scripts. |
| 113 | + |
| 114 | + Setting both *altinstall* and *default_pip* will trigger |
| 115 | + :exc:`ValueError`. |
| 116 | + |
| 117 | + *verbosity* controls the level of output to :data:`sys.stdout` from the |
| 118 | + bootstrapping operation. |
| 119 | + |
| 120 | + .. note:: |
| 121 | + |
| 122 | + The bootstrapping process may install additional modules required by |
| 123 | + ``pip``, but other software should not assume those dependencies will |
| 124 | + always be present by default (as the dependencies may be removed in a |
| 125 | + future version of ``pip``). |
0 commit comments