27.2. ensurepip — 引导 pip 安装程序 — Python 文档
27.2. 确保pip — 引导pip安装人员
2.7.9 版中的新功能。
ensurepip 包支持将 pip
安装程序引导到现有的 Python 安装或虚拟环境中。 这种引导方法反映了一个事实,即 pip
是一个具有自己发布周期的独立项目,最新的可用稳定版本与 CPython 参考解释器的维护和功能版本捆绑在一起。
在大多数情况下,Python 的最终用户不需要直接调用这个模块(因为 pip
应该默认引导),但如果安装 Python 时跳过安装 pip
可能需要它(或在创建虚拟环境时)或在明确卸载 pip
之后。
笔记
本模块不上网。 引导 pip
所需的所有组件都包含在包的内部部件中。
也可以看看
- 安装 Python 模块
- 安装 Python 包的最终用户指南
- PEP 453:在 Python 安装中显式引导 pip
- 此模块的原始原理和规范。
- PEP 477:Backport ensurepip (PEP 453) 到 Python 2.7
- 将 PEP 453 向后移植到 Python 2.7 的基本原理和规范。
27.2.1. 命令行界面
使用解释器的 -m
开关调用命令行界面。
最简单的调用是:
python -m ensurepip
如果尚未安装,此调用将安装 pip
,否则不执行任何操作。 为确保 pip
的安装版本至少与 ensurepip
捆绑的版本一样新,请传递 --upgrade
选项:
python -m ensurepip --upgrade
默认情况下,pip
安装到当前虚拟环境(如果一个是活动的)或系统站点包(如果没有活动的虚拟环境)。 安装位置可以通过两个额外的命令行选项来控制:
--root <dir>
:相对于给定的根目录安装pip
,而不是当前活动虚拟环境的根目录(如果有)或当前 Python 安装的默认根目录。--user
:将pip
安装到用户站点包目录中,而不是当前 Python 安装的全局目录中(在活动虚拟环境中不允许使用此选项)。
默认情况下,将安装脚本 pip
、pipX
和 pipX.Y
(其中 XY 代表用于调用 ensurepip
的 Python 版本)。 安装的脚本可以通过两个额外的命令行选项进行控制:
--altinstall
:如果请求替代安装,pip
和pipX
脚本将 不安装 。--no-default-pip
:如果请求非默认安装,pip
脚本将 不安装 。
2.7.15 版本变更: 如果命令失败,退出状态为非零。
27.2.2. 模块API
ensurepip 公开了两个用于编程使用的函数:
- ensurepip.version()
- 返回一个字符串,指定在引导环境时将安装的 pip 的捆绑版本。
- ensurepip.bootstrap(root=None, upgrade=False, user=False, altinstall=False, default_pip=True, verbosity=0)
将
pip
引导到当前或指定的环境中。root 指定要相对于安装的替代根目录。 如果 root 是
None
,则安装使用当前环境的默认安装位置。upgrade 表示是否将现有安装的
pip
的早期版本升级到捆绑版本。user 表示是否使用用户方案而不是全局安装。
默认情况下,将安装脚本
pip
、pipX
和pipX.Y
(其中 XY 代表 Python 的当前版本)。如果设置了 altinstall,那么
pip
和pipX
将不会被安装 ' 。如果 default_pip 设置为
False
,那么pip
将不会被安装 ' 。同时设置 altinstall 和 default_pip 将触发
ValueError
。verbosity 控制从引导操作输出到 sys.stdout 的级别。
笔记
引导过程对
sys.path
和os.environ
都有副作用。 相反,在子进程中调用命令行界面可以避免这些副作用。笔记
引导过程可能会安装
pip
所需的其他模块,但其他软件不应假定这些依赖项在默认情况下始终存在(因为这些依赖项可能会在pip
的未来版本中删除)。