28.2. ensurepip
- 引导pip
安装程序¶
版本3.4中的新功能。
ensurepip
包支持将pip
安装程序引导到现有的Python安装或虚拟环境中。这种引导方法反映了以下事实:pip
是一个具有自己的发布周期的独立项目,最新的可用稳定版本与CPython参考解释器的维护和功能版本捆绑在一起。
在大多数情况下,Python的最终用户不需要直接调用这个模块(因为pip
应该默认是自举的),但如果安装pip
在安装Python时(或在创建虚拟环境时)或在明确卸载pip
之后跳过。
注意
此模块不会访问互联网。引导pip
所需的所有组件都作为包的内部部分包括在内。
也可以看看
- Installing Python Modules
- 用于安装Python软件包的最终用户指南
- PEP 453:在Python安装中显式引导pip
- 这个模块的原始理由和规范。
28.2.1. Command line interface¶
使用解释器的-m
开关调用命令行接口。
最简单的调用是:
python -m ensurepip
此调用将安装pip
(如果尚未安装),否则什么也不做。要确保pip
的安装版本至少与ensurepip
捆绑在一起的版本一致,请传递--upgrade
选项:
python -m ensurepip --upgrade
默认情况下,pip
安装到当前虚拟环境(如果有活动)或系统站点包(如果没有活动的虚拟环境)。可以通过两个附加的命令行选项控制安装位置:
--root <dir>
: Installspip
relative to the given root directory rather than the root of the currently active virtual environment (if any) or the default root for the current Python installation.--user
:将pip
安装到用户站点包目录中,而不是全局地安装当前Python安装(在活动虚拟环境中不允许使用此选项。
默认情况下,将安装脚本pipX
和pipX.Y
(其中X.Y表示用于调用ensurepip
的Python版本)。可以通过两个附加的命令行选项控制安装的脚本:
--altinstall
:如果请求替代安装,pipX
脚本将不会安装。--default-pip
:如果请求安装“default pip”,则除了两个常规脚本之外,还将安装
pip
脚本。
提供这两个脚本选择选项将触发异常。
28.2.2. Module API¶
ensurepip
显示两个程序化使用的函数:
-
ensurepip.
version
()¶ 返回一个字符串,指定在引导环境时将安装的pip的捆绑版本。
-
ensurepip.
bootstrap
(root=None, upgrade=False, user=False, altinstall=False, default_pip=False, verbosity=0)¶ 引导
pip
进入当前或指定的环境。root指定要相对于其安装的备用根目录。如果root为无,则安装将使用当前环境的默认安装位置。
upgrade指示是否将
pip
的早期版本的现有安装升级到捆绑版本。用户指示是否使用用户方案,而不是全局安装。
默认情况下,将安装脚本
pipX
和pipX.Y
(其中X.Y代表当前版本的Python)。如果设置altinstall,则
pipX
将不安装。如果设置了default_pip,则除了两个常规脚本之外还将安装
pip
。同时设置altinstall和default_pip会触发
ValueError
。verbosity控制从引导操作到
sys.stdout
的输出级别。注意
引导过程对
sys.path
和os.environ
都有副作用。在子进程中调用命令行接口可以避免这些副作用。注意
引导过程可以安装
pip
所需的附加模块,但是其他软件不应该假定这些依赖性将默认存在(因为依赖性可以在pip