ensurepip — 引导 pip 安装程序

3.4 版中添加。

源代码: Lib/ensurepip


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

在大多数情况下,Python 的最终用户无需直接调用此模块(因为 pip 应默认引导),但如果在安装 Python(或创建虚拟环境)时跳过了安装 pip,或者在显式卸载 pip 后,可能需要它。

注意

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

另请参阅

安装 Python 模块

安装 Python 包的最终用户指南

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

此模块的原始原理和规范。

可用性:不适用于 Emscripten,不适用于 WASI。

此模块在 WebAssembly 平台 wasm32-emscriptenwasm32-wasi 上不起作用或不可用。有关详细信息,请参阅 WebAssembly 平台

命令行界面

使用解释器的 -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 脚本。

  • --default-pip:如果请求“默认 pip”安装,则除了两个常规脚本之外,还将安装 pip 脚本。

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

模块 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

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

同时设置 altinstalldefault_pip 将触发 ValueError

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

引发 审计事件 ensurepip.bootstrap,参数为 root

注意

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

注意

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