27.2. surepip —引导 pip 安装程序

2.7.9 版中的新Function。

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

在大多数情况下,Python 的finally用户不需要直接调用此模块(默认情况下应引导pip,但如果在安装 Python(或创建虚拟环境)时或之后跳过了安装pip,则可能需要明确卸载pip

Note

该模块访问互联网。引导pip所需的所有组件都包含在软件包的内部。

See also

  • 安装 Python 模块

  • finally用户指南,用于安装 Python 软件包

  • PEP 453:在 Python 安装中明确引导 pip

  • 该模块的原始原理和规范。

  • PEP 477:向 Python 2.7 反向传输确保点(PEP 453)

  • 将 PEP 453 反向移植到 Python 2.7 的原理和规范。

27.2.1. 命令行界面

使用解释器的-m开关调用命令行界面。

最简单的调用是:

python -m ensurepip

如果尚未安装,此调用将安装pip,否则不执行任何操作。为确保pip的安装版本至少与ensurepipBinding 的版本相同,请传递--upgrade选项:

python -m ensurepip --upgrade

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

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

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

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

  • --altinstall:如果请求备用安装,则***将不会安装pippipX脚本。

  • --no-default-pip:如果请求非默认安装,则将安装pip脚本。

在版本 2.7.15 中更改:如果命令失败,则退出状态为非零。

27.2.2. 模块 API

ensurepip公开了两个用于程序设计的Function:

  • ensurepip. version ( )

    • 返回一个字符串,该字符串指定在引导环境时将安装的 pipBinding 版本。
  • ensurepip. bootstrap(* root = None upgrade = False user = False altinstall = False default_pip = True verbosity = 0 *)

    • pip引导到当前或指定的环境中。
  • root 指定要安装的替代根目录。如果 root *为None,则安装使用当前环境的默认安装位置。

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

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

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

如果设置了* altinstall ,那么将不*安装pippipX

如果* default_pip 设置为False,则将不*安装pip

同时设置* altinstall default_pip *将触发ValueError

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

Note

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

Note

引导过程可能会安装pip所需的其他模块,但其他软件不应假定默认情况下始终存在这些依赖项(因为在将来的pip版本中可能会删除这些依赖项)。