28.2. ensurepip - 引导pip安装程序

版本3.4中的新功能。

ensurepip包支持将pip安装程序引导到现有的Python安装或虚拟环境中。这种引导方法反映了以下事实:pip是一个具有自己的发布周期的独立项目,最新的可用稳定版本与CPython参考解释器的维护和功能版本捆绑在一起。

在大多数情况下,Python的最终用户不需要直接调用这个模块(因为pip应该默认是自举的),但如果安装pip在安装Python时(或在创建虚拟环境时)或在明确卸载pip之后跳过。

注意

此模块不会访问互联网。引导pip所需的所有组件都作为包的内部部分包括在内。

也可以看看

Installing Python Modules
用于安装Python软件包的最终用户指南
PEP 453:在Python安装中显式引导pip
这个模块的原始理由和规范。

28.2.1. Command line interface

使用解释器的-m开关调用命令行接口。

最简单的调用是:

python -m ensurepip

此调用将安装pip(如果尚未安装),否则什么也不做。要确保pip的安装版本至少与ensurepip捆绑在一起的版本一致,请传递--upgrade选项:

python -m ensurepip --upgrade

默认情况下,pip安装到当前虚拟环境(如果有活动)或系统站点包(如果没有活动的虚拟环境)。可以通过两个附加的命令行选项控制安装位置:

  • --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:将pip安装到用户站点包目录中,而不是全局地安装当前Python安装(在活动虚拟环境中不允许使用此选项。

默认情况下,将安装脚本pipXpipX.Y(其中X.Y表示用于调用ensurepip的Python版本)。可以通过两个附加的命令行选项控制安装的脚本:

  • --altinstall:如果请求替代安装,pipX脚本将不会安装

  • --default-pip:如果请求安装“default pip”,则

    除了两个常规脚本之外,还将安装pip脚本。

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

28.2.2. Module API

ensurepip显示两个程序化使用的函数:

ensurepip.version()

返回一个字符串,指定在引导环境时将安装的pip的捆绑版本。

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

引导pip进入当前或指定的环境。

root指定要相对于其安装的备用根目录。如果root为无,则安装将使用当前环境的默认安装位置。

upgrade指示是否将pip的早期版本的现有安装升级到捆绑版本。

用户指示是否使用用户方案,而不是全局安装。

默认情况下,将安装脚本pipXpipX.Y(其中X.Y代表当前版本的Python)。

如果设置altinstall,则pipX安装。

如果设置了default_pip,则除了两个常规脚本之外还将安装pip

同时设置altinstalldefault_pip会触发ValueError

verbosity控制从引导操作到sys.stdout的输出级别。

注意

引导过程对sys.pathos.environ都有副作用。在子进程中调用命令行接口可以避免这些副作用。

注意

引导过程可以安装pip所需的附加模块,但是其他软件不应该假定这些依赖性将默认存在(因为依赖性可以在pip