get-pip.py是官方推荐的零依赖pip安装方案,它不依赖现有pip,支持离线安装、多python版本及低权限场景,能安全绕过自我升级冲突。

直接装 get-pip.py 是最稳的路,只要目标机器有 Python 解释器且能跑 python 命令,就别绕弯子。
为什么不用 pip download 装 pip 本身
很多人下意识想用 pip download pip,但这是死路——pip 还没装,哪来的 pip 命令去下载自己?更关键的是,pip download 本质是 pip 的子命令,它依赖 pip 已存在。离线装 pip 的起点必须是“零依赖启动”,而 get-pip.py 就是官方设计的这个启动器。
它内部做了三件事:检查当前 Python 环境、下载最新 pip wheel、调用 pip._internal 模块完成安装,全程不依赖已存在的 pip。
常见错误现象:
- 执行
pip download pip报错command not found: pip - 误以为
pip-24.0-py3-none-any.whl可以直接pip install,结果陷入循环依赖
怎么拿到并运行 get-pip.py
在一台能联网的机器上执行:
wget https://bootstrap.pypa.io/get-pip.py
或用 curl -O,确保下载的是原始脚本(不是重定向后的 HTML 页面)。检查文件头是否含 #!/usr/bin/env python 和大量 Python 代码,避免下载失败。
把 get-pip.py 拷到目标服务器后,执行:
python get-pip.py
注意:
- 如果系统有多个 Python 版本,明确指定解释器,比如
python3.9 get-pip.py - 若提示
PermissionError,加--user参数:python get-pip.py --user - 不推荐用
sudo python get-pip.py,容易污染系统级 site-packages
Arm64 / CentOS 7 / 无编译器环境的特殊处理
绝大多数情况下 get-pip.py 能直接跑通,但以下场景需额外注意:
-
get-pip.py会尝试安装setuptools和wheel,如果目标机器连gcc都没有,而这些包又带 C 扩展(极少见),会报error: command 'gcc' failed。此时应先手动装好setuptools和wheel的纯 Python wheel:python -m pip install setuptools-68.0.0-py3-none-any.whl wheel-0.42.0-py3-none-any.whl - Arm64 服务器上,
get-pip.py本身是架构无关的,无需额外参数;但后续装第三方包时才需要--platform manylinux2014_aarch64 - CentOS 7 默认 Python 为 2.7,若要装 Python 3 对应的 pip,必须用
python3 get-pip.py,且确认python3已安装(否则先离线装 Python 3)
验证和后续动作
执行完 python get-pip.py 后,立刻验证:
python -m pip --version
如果输出类似 pip 24.0.1 from ...,说明成功。接下来该干啥:
- 立即换国内源(哪怕离线,后续可能连内网镜像):
python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple - 如果目标环境禁止外网但允许访问内网 PyPI 镜像,现在就可以配
--index-url file:///path/to/local/mirror - 别急着装其他包——先用
python -m pip list确认只有pip、setuptools、wheel三个基础包,避免残留旧 pip 干扰
最容易被忽略的一点:get-pip.py 安装的 pip 会绑定当前 Python 解释器路径。如果之后你用 venv 创建新虚拟环境,那个环境里的 pip 是独立的,需要重新激活或确认是否继承了配置。别假设“装了一次就全好了”。











