Python怎么安装pip?ensurepip与get-pip.py官方方法详解

江岸
江岸
发布时间:2026-11-04 | 9人浏览过
原创

本文详细讲解Python官方推荐的两种pip安装与恢复方法:内置标准库模块ensurepip和官方独立脚本get-pip.py。分析其原理、步骤、环境差异与常见报错排查。

官方规范 Python 环境治理 阅读时长约 8 分钟
Python 官方推荐的 pip 安装与环境恢复方法主要有两种:一是利用标准库内置的 ensurepip 模块,二是使用官方自解压安装脚本 get-pip.py。如果系统中的 Python 安装完整但仅缺少 pip,首选方案是直接运行 python -m ensurepip --default-pip,该命令直接从本地自带资源中引导安装 pip,全程无需联网;而当标准库被系统裁剪(如部分 Linux 精简环境)、解释器自带模块受损,或需要强制安装最新版 pip 时,从官方渠道获取 get-pip.py 脚本执行则是最可靠、最纯净的修复途径。
Python怎么安装pip?ensurepip与get-pip.py官方方法详解
图 0:Python 官方推荐的两大 pip 安装与修复工具全景对比

一、准备工作:检查当前 Python 与 pip 状态

在动手安装或排查前,第一步是明确系统当前是否存在可用的 Python 解释器,以及 pip 是否其实已经存在但只是未被系统命令行正确检索到。在很多情况下,pip 已经随 Python 一并安装在本地硬盘中,只是因为环境变量缺失导致控制台报错。

1. 确认 Python 解释器已被识别

打开操作系统的终端(Windows 下为 PowerShell 或 CMD,macOS/Linux 下为 Terminal),输入以下命令检查 Python 版本:

终端命令与示例输出
$python --version
[示例输出]
Python 3.11.8

在 macOS 或某些 Linux 发行版上,如果系统默认将 Python 3 绑定为 python3,请相应地使用 python3 --version 进行确认。若系统提示“不是内部或外部命令”或“command not found”,说明当前 Python 解释器尚未正确安装或未添加至系统 PATH 环境变量,需要先完成 Python 本身的安装配置。

2. 检查 pip 是否已在模块系统中就绪

不要直接仅凭敲入 pip 这一简短命令来判定其是否存在,因为独立命令依赖 PATH 变量解析。更严谨的做法是让 Python 解释器去检索其自身的模块库:

终端命令与示例输出
$python -m pip --version
[若已正确安装,预期示例输出]
pip 24.0 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)

若此时终端回显形如 No module named pip 的错误信息,则确凿证明当前 Python 环境内部确实缺少 pip 模块,此时读者应根据下方的决策流程图选择适合自身环境的安装方式。

Python怎么安装pip?ensurepip与get-pip.py官方方法详解
图 1:pip 安装与修复方案选择决策流程图

二、方法一:使用内置模块 ensurepip 快速引导

自 Python 3.4 版本起,PEP 453 正式将 ensurepip 模块合并入官方标准库。它的核心职责是在 Python 环境中引导(Bootstrap)安装 pip,且完全不产生任何网络 I/O 行为。

1. 为什么它是最快捷的首选方案?

标准 Python 安装包中已经在 Lib/ensurepip/_bundled/ 目录下打包了经过官方验证的 pip 和 setuptools 轮子文件(.whl)。调用 ensurepip 时,Python 会直接将这些内置轮子解压并注册到对应的 site-packages 目录,过程通常在数秒内即可完成,且极为适合离线办公、防火墙受限或无外网连接的开发机。

2. 执行核心安装命令

在终端中执行以下命令(注意务必附带 --default-pip 参数):

执行 ensurepip 引导
$python -m ensurepip --default-pip
[预期示例输出]
Looking in links: /tmp/tmp_ensurepip_bundled Processing /tmp/tmp_ensurepip_bundled/setuptools-65.5.0-py3-none-any.whl Processing /tmp/tmp_ensurepip_bundled/pip-23.2.1-py3-none-any.whl Installing collected packages: setuptools, pip Successfully installed pip-23.2.1 setuptools-65.5.0
关键参数解析:为什么必须带上 --default-pip?
按照官方安全设计,单独执行 python -m ensurepip 仅确保库文件落地,但在部分构建配置下可能不会在全局或系统的可执行脚本目录(如 Windows 下的 Scripts 文件夹)中生成 pip 命令行可执行包装脚本。显式传入 --default-pip 能确保生成对应的启动程序;若希望替换已经存在的旧版引导,还可追加 --upgrade。
Python怎么安装pip?ensurepip与get-pip.py官方方法详解
图 2:使用内置 ensurepip 引导安装 pip 的四步操作分解

3. ensurepip 的适用边界与可能遇到的问题

并非所有平台下的 Python 都保留了完整的 ensurepip 模块。例如在 Debian、Ubuntu 及其衍生系统中,官方维护者为了防止与系统的 apt 包管理机制发生隐式冲突,默认通过策略剥离了 ensurepip 内部捆绑的 wheels,执行时会抛出 No module named ensurepip。此时读者有两个选择:

  • 在具备 root 权限时,通过系统包管理器安装支持包(如 sudo apt install python3-venv 或 python3-pip)。
  • 直接采用下文介绍的第二种官方通用方法:get-pip.py。

三、方法二:使用独立脚本 get-pip.py 完整安装

get-pip.py 是 Python 打包权威组织(PyPA, Python Packaging Authority)官方维护的一个自包含引导脚本。当系统标准库被裁剪、ensurepip 丢失、或者希望在不升级 Python 的前提下直接拉取最新发布版 pip 时,此方法具有极高的兼容性与自愈能力。

1. 获取官方正规脚本

务必直接从 PyPA 官方认证的域名下载该脚本,切忌使用来历不明的网络链接。在终端中根据系统环境运行对应命令下载:

下载 get-pip.py 脚本命令
# Linux / macOS (使用 curl)
$curl -sS -O https://bootstrap.pypa.io/get-pip.py
# Windows (PowerShell)
PS>Invoke-WebRequest -Uri https://bootstrap.pypa.io/get-pip.py -OutFile get-pip.py
针对较早 Python 版本的官方存档路径
主路径 bootstrap.pypa.io/get-pip.py 仅支持当前依然处于维护周期内的现代 Python 版本(Python 3.8+)。如果因为维护遗留系统而运行较早的 Python 版本,PyPA 提供了版本专用的历史子路径,例如 Python 3.7 应访问 https://bootstrap.pypa.io/pip/3.7/get-pip.py。

2. 执行脚本完成安装

下载完成后,在保存该脚本的目录下,直接用目标 Python 解释器调用执行它:

执行 get-pip.py 安装
$python get-pip.py
[预期示例输出]
Collecting pip Downloading pip-24.0-py3-none-any.whl (2.1 MB) Collecting setuptools Downloading setuptools-69.5.1-py3-none-any.whl (894 kB) Collecting wheel Downloading wheel-0.43.0-py3-none-any.whl (65 kB) Installing collected packages: wheel, setuptools, pip Successfully installed pip-24.0 setuptools-69.5.1 wheel-0.43.0

如果当前终端没有系统的管理员(Administrator / root)权限,或者不希望改动系统级全局目录,建议追加 --user 参数进行隔离安装:

普通用户目录隔离安装
$python get-pip.py --user

此参数会将 pip 及其脚本部署至当前登录用户的用户主目录下(Windows 为应用数据目录,Linux/macOS 为 ~/.local),既不需要提升特权,也不会破坏全局系统环境。

Python怎么安装pip?ensurepip与get-pip.py官方方法详解
图 3:get-pip.py 独立安装流程与核心参数机制

四、底层剖析:两种安装机制的本质差异

理解两种方法在技术底层的区别,有助于开发者在各类特殊工程环境(如内网安全审查、CI/CD 镜像构建、嵌入式 Linux)中作出最合理的架构选型。

对比维度 ensurepip 标准库模块 get-pip.py 独立引导脚本
技术载体 Python 标准库原生模块(C/Python 代码 + 内嵌 wheel) 独立发布的自解压 ZipApp 脚本文件
网络依赖度 完全零网络依赖(纯本地物理轮子解包) 默认需要网络连接(自解压并在线获取最新稳定依赖)
安装的 pip 版本 与当前 Python 发行构建时打包的版本严格绑定 通常为当前 Python 所支持的 PyPI 最新发布版本
依赖组件完整性 仅包含基础 pip 与 setuptools 完整部署 pip、setuptools 以及 wheel 编译支持套件
适用与修复能力 适合常规全新环境快速初始化或无网内网部署 适合严重受损环境自愈、Docker 精简底包构建
Python怎么安装pip?ensurepip与get-pip.py官方方法详解
图 4:ensurepip 与 get-pip.py 底层文件流转与解包架构对比

五、安装后验证、环境配置与常见问题排查

安装完成后,需要通过标准化步骤对环境进行验收。同时,了解常见环境报错的本质成因,可以帮助初学者快速排障。

1. 为什么强烈建议始终使用 python -m pip?

很多开发者习惯直接在控制台敲入 pip install <package>,但在多 Python 版本共存(如同时存在 Python 3.10 与 3.12)、或同时安装了 Anaconda/Miniconda 的开发机器上,这极其容易引发“明明安装了包,脚本运行时却报 ModuleNotFoundError”的典型问题。

原因是直接调用 pip 时,操作系统会按照 PATH 环境变量中的先后顺序匹配第一个找到的可执行文件,它所对应的 Python 解释器未必是你当前正在使用的解释器。而使用 python -m pip install <package> 能 100% 确保当前执行的 pip 正好属于你调用的那个 python,彻底消除了版本错位的隐患。

2. 解决“'pip' 不是内部或外部命令”或“command not found”

如果希望能够在终端直接敲入 pip 运行,则必须将 pip 启动脚本所在的目录注册至系统的 PATH 环境变量中:

  • Windows 系统:进入 Python 安装根目录下的 Scripts 文件夹(例如当前用户 AppData 目录下的 Python 安装路径中的 Scripts),将该完整路径添加至系统的“环境变量 -> Path”列表中,并重启终端生效。
  • Linux / macOS 系统:若使用了 --user 安装,二进制文件通常位于 ~/.local/bin;若在全局安装,通常位于 /usr/local/bin。需在用户的 Shell 配置文件(如 ~/.bashrc 或 ~/.zshrc)末尾增加一行:export PATH="$HOME/.local/bin:$PATH",随后运行 source ~/.zshrc 刷新环境。

3. 将 pip 升级至最新稳定版本

无论通过哪种方式完成初始安装,一旦处于联网环境中,建议立即将 pip 升级至官方最新版以获得性能优化、安全补丁以及对新型 wheel 格式的更好支持:

安全升级 pip
$python -m pip install --upgrade pip
[预期示例输出]
Requirement already satisfied: pip in ... Attempting uninstall: pip Found existing installation: pip 23.2.1 Uninstalling pip-23.2.1: Successfully uninstalled pip-23.2.1 Successfully installed pip-24.0
Python怎么安装pip?ensurepip与get-pip.py官方方法详解
图 5:pip 安装后验证与高频报错排查速查清单
针对 Linux 现代发行版的特别提醒(PEP 668)
在 Ubuntu 23.04+、Debian 12+ 等较新的操作系统中,直接对系统 Python 全局运行 pip 可能会遇到 error: externally-managed-environment 提示。这是官方为了防止 pip 意外覆盖由 Linux 发行版 apt 管理的关键核心系统组件所推行的保护机制。此时最佳实践是创建 Python 自带的隔离虚拟环境:
python3 -m venv myenv
source myenv/bin/activate
激活虚拟环境后,环境中即自带专属的纯净 pip,可以自由安装任何依赖而完全无需系统管理员权限。
相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表