ensurepip --- 引导 pip 安装程序

在 3.4 版本加入。

源代码: Lib/ensurepip


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

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

备注

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

参见

安装 Python 模块

安装 Python 包的最终用户指南

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

该模块的最初理由和规范。

可用性: 非 Android、非 iOS、非 WASI。

该模块在移动平台WebAssembly 平台上不受支持。

命令行接口

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

最简单的调用方式是:

python -m ensurepip

此调用将安装 pip (如果尚未安装),否则不执行任何操作。要确保已安装的 pip 版本至少与 ensurepip 中可用的版本一样新,请传递 --upgrade 选项:

python -m ensurepip --upgrade

默认情况下,pip 会被安装到当前的虚拟环境中(如果已激活),或者安装到系统的 site-packages 目录中(如果没有激活的虚拟环境)。安装位置可以通过两个额外的命令行选项来控制:

--root <dir>

相对于给定的根目录安装 pip,而不是当前活动虚拟环境的根目录(如果有的话)或当前 Python 安装的默认根目录。

--user

pip 安装到用户 site-packages 目录,而不是为当前 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 的详细程度。

引发一个附带参数 root审计事件 ensurepip.bootstrap

备注

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

备注

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