Skip to main content

28.2. ensurepip —引导 pip 安装程序

3.4 新版功能.


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

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

注解

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

参见

安装Python模块

用于安装Python软件包的最终用户指南

PEP 453:在Python安装中显式引导pip

这个模块的原始理由和规范。

28.2.1. 命令行界面

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

最简单的调用是:

python -m ensurepip

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

python -m ensurepip --upgrade

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

  • --root <dir>:相对于给定根目录而不是当前活动虚拟环境的根目录(如果有)或当前Python安装的默认根目录安装 pip

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

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

  • --altinstall:如果请求备用安装,则将安装 pipX 脚本 not

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

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

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

28.2.2. 模块API

ensurepip 公开了两种用于程序化使用的功能:

ensurepip.version()

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

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

pip 引导到当前或指定的环境中。

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

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

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

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

如果设置了 altinstall,则 pipX 将安装 not

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

设置 altinstalldefault_pip 将触发 ValueError

verbosity 控制从自举操作到 sys.stdout 的输出电平。

注解

自举过程对 sys.pathos.environ 都有副作用。在子进程中调用命令行接口,而不允许避免这些副作用。

注解

引导过程可以安装 pip 所需的附加模块,但是其他软件不应该假设默认情况下始终存在这些依赖性(因为在未来的 pip 版本中可以移除依赖性)。