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 安装进行全局安装(此选项在激活的虚拟环境中不允许使用)。
默认情况下,会安装 pipX
和 pipX.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 指定一个备用的根目录,安装将相对于该目录进行。如果 root 为
None
,则安装使用当前环境的默认安装位置。upgrade 指示是否将现有的旧版本
pip
升级到可用版本。user 指示是否使用用户方案而不是全局安装。
默认情况下,会安装
pipX
和pipX.Y
脚本(其中 X.Y 代表当前 Python 版本)。如果设置了 altinstall,那么
pipX
将*不会*被安装。如果设置了 default_pip,那么除了两个常规脚本外,还会安装
pip
。同时设置 altinstall 和 default_pip 将会引发
ValueError
。verbosity 控制引导操作输出到
sys.stdout
的详细程度。引发一个附带参数
root
的 审计事件ensurepip.bootstrap
。备注
引导过程对
sys.path
和os.environ
都有副作用。在子进程中调用命令行接口可以避免这些副作用。备注
引导过程可能会安装
pip
所需的其他模块,但其他软件不应假设这些依赖项会一直默认存在(因为这些依赖项可能会在未来版本的pip
中被移除)。