"ensurepip" --- 引导 "pip" 安装器
*********************************

3.4 版新加入.

======================================================================

"ensurepip" 包为在已有的Python安装实例或虚拟环境中引导 "pip" 安装器提
供了支持。需要使用引导才能使用pip的这一事实也正好反映了 "pip" 是一个独
立的项目，有其自己的发布周期，其最新版本随CPython解释器的维护版本和新
特性版本一同捆绑。

在大多数情况下，Python的终端使用者不需要直接调用这个模块（ "pip" 默认
应该已被引导），不过，如果在安装Python（或创建虚拟环境）之时跳过了安装
"pip" 步骤，或者日后特意卸载了 "pip" ，则需要使用这个模块。

備註:

  这个模块 *无需* 访问互联网。引导启动 "pip" 所需的全部组件均包含在包
  的内部。

也參考:

  安裝 Python 模組
     安装Python包的终端使用者教程

  **PEP 453**: 在Python安装实例中显式引导启动pip
     这个模块的原始缘由以及规范文档


命令行界面
==========

使用解释器的 "-m" 参数调用命令行接口。

最简单的调用方式为：

   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

在默认情况下，"pip" 会被安装到当前虚拟环境（如果激活了虚拟环境）或系统
的包目录（如果未激活虚拟环境）。 安装位置可通过两个额外的命令行选项来
控制。

* "--root 1": 相对于给定的根目录而不是当前已激活虚拟环境（如果存在）的
  根目录或当前 Python 安装版的默认根目录来安装 "pip"。

* "--user": 将 "pip" 安装到用户包目录而不是全局安装到当前 Python 安装
  版（此选项不允许在已激活虚拟环境中使用）。

在默认情况下，脚本 "pipX" 和 "pipX.Y" 将被安装（其中 X.Y 表示被用来发
起调用 "ensurepip" 的 Python 的版本）。 所安装的脚本可通过两个额外的命
令行选项来控制:

* "--altinstall": 如果请求了一个替代安装版，则 "pipX" 脚本将 *不会* 被
  安装。

* "--default-pip": 如果请求了一个 "默认的 pip" 安装版，则除了两个常规
  脚本之外还将安装 "pip" 脚本。

同时提供这两个脚本选择选项将会触发异常。


模块 API
========

"ensurepip" 暴露了两个函数用于编程:

ensurepip.version()

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

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

   初始创建 "pip" 到当前的或指定的环境中。

   *root* 指明要作为相对安装路径的替代根目录。 如果 *root* 为 "None"，
   则安装会使用当前环境的默认安装位置。

   *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
   "ValueError".

   *verbosity* controls the level of output to "sys.stdout" from the
   bootstrapping operation.

   Raises an auditing event "ensurepip.bootstrap" with argument
   "root".

   備註:

     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.

   備註:

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